使用 socket.io 更新 Angular 工厂中的计数器
Update Counter in Angular factory with socket.io
我正在尝试实现自动更新(增加)传入数据数量的解决方案。
我正在监听传入的消息并在工厂中计算它们:
angular.module('app')
.factory('UpdateCounter', ['socketio', function (socketio) {
var counter = { count: 0 };
socketio.on('message', function (msg) {
counter.count += 1;
console.log(counter);
});
return counter;
}]);
我在控制器中使用此服务:
angular.module('app')
.controller('CounterCtrl', ['$scope', 'UpdateCounter',
function($scope, UpdateCounter) {
$scope.counter = UpdateCounter;
}]);
显示越来越多的数据:
<div class="text-center" ng-controller="CounterCtrl">
<h3 count-to="{{counter}}" value="{{countFrom}}" duration="4" class="total-events"></h3>
</div>
在日志中我可以看到消息数量在增加 ,但我在前端看不到增加(它始终为 0)
我正在使用 angular-count-to 制作数数动画
我认为您遗漏了 $scope.countFrom
并且看起来 $scope.counter
将成为一个对象。不需要将数字传递到 count-to
属性吗?
更新
我刚刚注意到的其他事情:您从未在 angular 模块声明中包含 count-to 指令。试着让它更像这样:
var app = angular.module('app', ['count-to']);
app.factory(.....);
app.controller(....);
我正在尝试实现自动更新(增加)传入数据数量的解决方案。
我正在监听传入的消息并在工厂中计算它们:
angular.module('app')
.factory('UpdateCounter', ['socketio', function (socketio) {
var counter = { count: 0 };
socketio.on('message', function (msg) {
counter.count += 1;
console.log(counter);
});
return counter;
}]);
我在控制器中使用此服务:
angular.module('app')
.controller('CounterCtrl', ['$scope', 'UpdateCounter',
function($scope, UpdateCounter) {
$scope.counter = UpdateCounter;
}]);
显示越来越多的数据:
<div class="text-center" ng-controller="CounterCtrl">
<h3 count-to="{{counter}}" value="{{countFrom}}" duration="4" class="total-events"></h3>
</div>
在日志中我可以看到消息数量在增加
我正在使用 angular-count-to 制作数数动画
我认为您遗漏了 $scope.countFrom
并且看起来 $scope.counter
将成为一个对象。不需要将数字传递到 count-to
属性吗?
更新
我刚刚注意到的其他事情:您从未在 angular 模块声明中包含 count-to 指令。试着让它更像这样:
var app = angular.module('app', ['count-to']);
app.factory(.....);
app.controller(....);