Pull to refresh

Comments 10

Вот что плохо в ангуларе, что такие простые вещи надо писать кучей кода. Неужели нет готовой таблицы с сортировкой и т.д.?
Это же не суперкастомное приложение в конце концов.
Если бы не подстановочные поля, то всё из коробки работает. Здесь можно было бы поступить проще — подставлять поля на сервере или при получении данных, и тогда можно было бы не городить с кастомными фильтрами. Но в этом случае (частично) потеряется эффективность работы с данными через $resource. Ну и в образовательных целях всё это сделано было.
Ну и не стоит забывать про извечное противостояние гибкости и простоты…
Ну вот, на мой взгляд, Вы перемудрили со сложностью. Немного отпугивают нагромождения кода, AngularJS как таковой теряется. А все из-за этих «подстановочных полей»…
1. и 2. Может быть это и не очень принципиально, но, на мой взгляд, было бы корректнее сказать, что внутри {{ }}, а также многих директив используются angular expressions, которые в общем-то не тоже самое, что и JS expressions.
3. А зачем? Хорошим тоном является взаимодействие контроллеров через сервисы.
4. Если я правильно понял вопрос, то вот.
5. Обратите внимание на третий параметр $watch — objectEquality. Пример.
я немного с опозданием наткнулся на статью, но не проще ли было сделать сортировку как здесь jsFiddle?
там сортировка только по одному столбцу
вчера сделал по нескольким, все еще проще: angular api и найти там orderBy
Не всё так просто. Нативный orderBy оперирует теми данными, что стоят в ng-repeat, и сортирует по полям полученных записей. В моём примере в полях «Категория» и «Кому задан» стоят числа — индексы массивов категорий и отвечающих. Нативная сортировка проходит по этим числовым индексам, а не по значениям из массивов (он же про них ничего не знает).
Можно, конечно, при получении данных подставлять строки вместо их индексов, и нативная сортировка будет работать. Иногда так даже и лучше сделать. Но я в примере не делал так, чтобы не менять формат исходных полученных с сервера данных. Такой подход позволяет обновлять записи на сервере изменением значения полей записи и простым вызовом item.$save().
Не все решения там хороши, но заглянуть в реализации очень полезно — узнал для себя много нового из того, чего нет или невозможно найти в документации.

И да, вообще на данный момент документация — одна из главных проблем фреймворка. Код документирован прекрасно, но на офф.сайте есть далеко не все.
Sign up to leave a comment.

Articles