У меня есть CanJS Model.List, который я визуализирую с использованием шаблона EJS следующим образом:
<% this.each(function(item, index) { %>
<% if(index < 5 ){ %>
<li <%= (el) -> el.data("item", item) %> >
<%= todo.attr('name') %> (<%= todo.attr('distance') %> miles)
</li>
<% } %>
<% }) %>
В моем приложении, где я загружаю данные с помощью Model.findAll
, я перебираю все элементы и запускаю асинхронный вызов для обновления свойства distance
, у меня есть список слушателей для изменений в distance
, который затем сортирует список на основе расстояния:
$.each(branches, function(i, b) {
console.log(i, b);
b.bind('distance', function (x, y, z) {
console.log("Distance", x, y, z);
b.save();
branches.sort();
});
// Async call to update distance here...
});
Вызов sort()
работает, у меня есть разные console.logs()
, показывающие его, но мой пользовательский интерфейс не обновляется.
Я предполагаю, что мне нужна сортировка, чтобы вызвать событие, которое this.each(...)
заметит.
Как мне обновить представление при пересортировке Model.List?