我有以下代码。代码在控制器内部。
var client = new Faye.Client('http://localhost:9292/faye');
client.subscribe('/main', function(message) {
console.log(message);
$scope.messages.push(message);
console.log($scope.messages);
});
这里我使用Faye来收听频道,然后将对象添加到$scope
。但是当我console.log
范围时,我看到message
对象已添加到范围,但DOM
未刷新,并且双向绑定不起作用。
我该如何解决这个问题?
答案 0 :(得分:0)
Angular需要在Angular世界之外发生事件时触发摘要周期。使用$ apply触发摘要:
var client = new Faye.Client('http://localhost:9292/faye');
client.subscribe('/main', function(message) {
$scope.$apply(function() {
console.log(message);
$scope.messages.push(message);
console.log($scope.messages);
}
});