视图在AngularJS中没有被更新。
视图在AngularJS中没有被更新。
当在事件回调中更新模型时,更新模型属性对视图没有影响,有什么解决方法吗?
这是我的服务:
angular.service('Channel', function() { var channel = null; return { init: function(channelId, clientId) { var that = this; channel = new goog.appengine.Channel(channelId); var socket = channel.open(); socket.onmessage = function(msg) { var args = eval(msg.data); that.publish(args[0], args[1]); }; } }; });
publish()
函数是在控制器中动态添加的。
控制器:
App.Controllers.ParticipantsController = function($xhr, $channel) { var self = this; self.participants = []; // 这里将publish函数添加到服务中 mediator.installTo($channel); // 同时添加了subscribe和publish $channel.subscribe('+p', function(name) { self.add(name); }); self.add = function(name) { self.participants.push({ name: name }); } }; App.Controllers.ParticipantsController.$inject = ['$xhr', 'Channel'];
视图:
所以问题是,点击按钮可以正确更新视图,但是当我从Channel接收到消息时,什么都没有发生,甚至add()
函数也没有被调用。