我有一系列项目,我想跟踪几个控制器。所以,为此,我提供了一项服务。
该服务现在是基本的,只需将项目添加到数组中即可获得计数:
angular.module('myapp.itemManagementService', [])
.factory('myappItemSrv', [function () {
var allItems = [];
return {
addItem: function (item) {
allItems.push(item);
},
getItemCount: function () {
return allItems.length;
}
};
} ])
;
在我的控制器中,我有一个调用addItem函数的按钮,它工作正常,但我不知道如何绑定getItemCount,以便每次添加项目时视图都会自动更新
在我的控制器中,我有这个:
$scope.count = myappItemSrv.getItemCount();
然后在视图中
{{count}}
这只会在我离开页面然后返回
时发生变化我意识到我正在返回一个函数的值并且不会绑定,但我不知道如何进行此自动更新。我尝试在$scope.$apply
调用中包含对addItem的调用,但我得到的错误是:
Error: [$rootScope:inprog] $apply already in progress
答案 0 :(得分:1)
getItemCount()
一次。一种方法是将其放在范围内......
$scope.getItemCount = myappItemSrv.getItemCount;
并更改绑定......
{{ getItemCount() }}