В настоящее время я работаю над веб-клиентом twitter, поэтому я использовал angular.js, node.js и socket.io. Я нажимаю новые твиты через socket.io моему клиенту, где служба ждет новых твитов. когда приходит новый твит, служба отправляет событие через $broadcast.
в моем контроллере есть прослушиватель событий, где входящие твиты обрабатываются отдельной функцией. эта функция просто подталкивает новый твит в моей области твита.
теперь, моя проблема ist, что мое представление не обновляется, но я вижу, как расширяется область. возможно, у вас есть идея, как я могу это решить?
дополнительно мой код:
службы:
(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