Хм… Всё-таки ошибка перевода тогда.
modularize — гл.; амер. модЕлировать, собирать из блоков
Но уж никак не модУлировать.
Спасибо, сам что-то не догадался посмотреть в оригинал (или поленился?..)
>JavaScript, как и все современные языки, может модулировать логику внутри функций
Что значит «модулировать логику»? Это какой-то термин, или ошибка перевода? Ни разу не встречал этот глагол в контексте логики.
Не всё так просто. Нативный orderBy оперирует теми данными, что стоят в ng-repeat, и сортирует по полям полученных записей. В моём примере в полях «Категория» и «Кому задан» стоят числа — индексы массивов категорий и отвечающих. Нативная сортировка проходит по этим числовым индексам, а не по значениям из массивов (он же про них ничего не знает).
Можно, конечно, при получении данных подставлять строки вместо их индексов, и нативная сортировка будет работать. Иногда так даже и лучше сделать. Но я в примере не делал так, чтобы не менять формат исходных полученных с сервера данных. Такой подход позволяет обновлять записи на сервере изменением значения полей записи и простым вызовом item.$save().
Вы не читали Дэна Симмонса, тетралогию «Гиперион»? Там была интересная идея, откуда возник искусственный интеллект — развился из подобных программ симуляции эволюции, поставленных в ограниченные условия.
P.S. Кстати, очень достойная книга! Рекомендую любителям фантастики.
Если бы не подстановочные поля, то всё из коробки работает. Здесь можно было бы поступить проще — подставлять поля на сервере или при получении данных, и тогда можно было бы не городить с кастомными фильтрами. Но в этом случае (частично) потеряется эффективность работы с данными через $resource. Ну и в образовательных целях всё это сделано было.
Ну и не стоит забывать про извечное противостояние гибкости и простоты…
Это может понадобиться в случае, если параллельно несколько человек работает над одной таблицей, и нужно учитывать последние изменения.
Хотя лучше периодически запрашивать сервер, нет ли изменений в таблице, и только при их наличии запрашивать обновление конкретных записей.
Интересный компонент, спасибо, я его не видел. Но, насколько я понял, он всю обработку делает на стороне сервера — страницы, сортировка, поиск. А в моей реализации все данные загружаются на страницу и обрабатываются уже на клиенте. В этом есть и преимущества, и недостатки — зависит от задачи.
Но в AngularJS можно и постоянную подгрузку данных реализовать, достаточно изменить сервис Items и добавить немного логики в контроллер. Это может понадобиться при огромных таблицах на сотни страниц. Если интересно, могу рассмотреть такой способ работы с данными.
Спасибо. А на странице libcanvas.github.com нет ссылки, там я первым делом искал, когда хотел найти этот редактор.
P.S. Спасибо за классную библиотеку :) Думаю её использовать в своём проекте…
Согласен с вами. Но это уже следующий шаг. Вспомните админки лет пять назад, до ajax-а. Работать можно было, но было дольше и менее удобно. К тому же функция редактирования на самой странице не заменит список всех материалов, иногда нужно видеть всё вместе, и именно с функцией сортировки (о которой в следующей статье, уже скоро).
modularize — гл.; амер. модЕлировать, собирать из блоков
Но уж никак не модУлировать.
Спасибо, сам что-то не догадался посмотреть в оригинал (или поленился?..)
Что значит «модулировать логику»? Это какой-то термин, или ошибка перевода? Ни разу не встречал этот глагол в контексте логики.
А вы напишите, что разговор идёт на «интергалактическом», и для удобства бекеров переведён на английский!
Можно, конечно, при получении данных подставлять строки вместо их индексов, и нативная сортировка будет работать. Иногда так даже и лучше сделать. Но я в примере не делал так, чтобы не менять формат исходных полученных с сервера данных. Такой подход позволяет обновлять записи на сервере изменением значения полей записи и простым вызовом item.$save().
P.S. Кстати, очень достойная книга! Рекомендую любителям фантастики.
Ну и не стоит забывать про извечное противостояние гибкости и простоты…
Хотя лучше периодически запрашивать сервер, нет ли изменений в таблице, и только при их наличии запрашивать обновление конкретных записей.
Но в AngularJS можно и постоянную подгрузку данных реализовать, достаточно изменить сервис Items и добавить немного логики в контроллер. Это может понадобиться при огромных таблицах на сотни страниц. Если интересно, могу рассмотреть такой способ работы с данными.
P.S. Спасибо за классную библиотеку :) Думаю её использовать в своём проекте…
При добавлении префикса не забыть поменять адреса в ссылках, и необходимо настроить сервер, чтобы отдавал поисковикам HTML (см. эту статью)