Javascript 如何绑定AngularJS中函数的结果
我有一系列的项目,我想在几个控制器之间跟踪它们。所以,为了做到这一点,我做了一个服务 该服务目前是基本服务,只需将项目添加到数组中,即可获得计数:Javascript 如何绑定AngularJS中函数的结果,javascript,angularjs,angularjs-scope,angularjs-service,Javascript,Angularjs,Angularjs Scope,Angularjs Service,我有一系列的项目,我想在几个控制器之间跟踪它们。所以,为了做到这一点,我做了一个服务 该服务目前是基本服务,只需将项目添加到数组中,即可获得计数: angular.module('myapp.itemManagementService', []) .factory('myappItemSrv', [function () { var allItems = []; return { addItem: function (item) {
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
getItemCount()
在加载控制器时调用一次。一种方法是把它放在范围内
$scope.getItemCount = myappItemSrv.getItemCount;
并更改绑定
{{ getItemCount() }}