我目前正在基于web的twitter客户端上工作,因此我使用angular.js,node.js和socket.io。我通过socket.io向我的客户端推送新的推文,在那里服务等待新的推文。当新的推文到达时,服务通过$ broadcast发送一个事件。angular.js:模型更新不会触发视图更新
在我的控制器是一个事件侦听器,传入的推文正在一个单独的函数中处理。这个功能只是推动我的推特范围内的新推文。
现在,我的问题是,我的观点没有更新,但我可以看到我的范围在增长。也许你们有一个想法,我该如何解决这个问题?
另外我的代码:
服务:
(function() {
app.factory('Push', ['$rootScope', function ($rootScope) {
socket.on('new-tweet', function (msg) {
$rootScope.$broadcast('new-tweet', msg);
});
}]);
}());
控制器:
(function() {
app.controller("StreamCtrl", function StreamCtrl ($scope, $rootScope, $http, Push) {
$scope.tweets = [];
$http
.get('/stream')
.then(function (res) {
$scope.tweets = res.data;
});
$scope.addTweet = function (data) {
$scope.tweets.push(data);
console.log($scope.tweets);
};
$rootScope.$on('new-tweet', function (event, data) {
if (!data.friends) {
$scope.addTweet(data);
}
});
});
}());
整个项目是在这里:https://github.com/hochitom/node-twitter-client
尝试添加$范围$适用()在addTweet和看到的结果,如果观点。更新与否 – 2013-04-24 07:39:01