Так что у меня этот кусок кода, который обрабатывает обновление моделиКак обрабатывать 2-полосное обновление вида модели в AngularJS + Socket.IO
// Edit todo.
$scope.editTodo = function(todo) {
var newTitle = prompt('Edit todo', todo.title);
if (newTitle) {
todo.title = newTitle;
todo.$update();
socket.emit('update_todo', todo);
}
}
Если параметр «TODO», посылает от Посмотреть.
У меня есть этот кусок кода, который прослушивает событие «update_todo» и обновляет вид модели на других активных сокетах/клиентах.
socket.on('todoUpdated', function(data) {
for (var i in $scope.todos) {
if ($scope.todos[i]._id == data._id) {
$scope.todos[i] = data;
}
}
});
Однако сказать, что я только что редактировали модель в «client1» переход на «client2», и попытаться изменить ту же модель, я получаю следующее сообщение об ошибке:
TypeError: Object #<Object> has no method '$update'
Что делать ? И есть ли более умный/лучший способ обновления представления модели вместо выполнения цикла for? Помощь очень ценится :)
Как вы звоните в 'метод editTodo'? Не могли бы вы предоставить скрипт Plunker/jsFiddle своим кодом? –
Это в значительной степени, как выглядит мой код: http://jsfiddle.net/HB7LU/307/ – dgsunesen
@MichaelBenford получил предложения? :) – dgsunesen