我目前正在基於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