我正在使用ng-cart directive开展项目。该指令有一项服务,其中包含一个功能totalCost()
,用于更新添加到购物车的总金额。
为了在视图中显示它,我在我的控制器中写了这个:
this.totalCost = ngCart.totalCost();
视图中显示的值是正确的,但问题是当我从购物车添加/删除项目时,此值不会更新,但仅在我刷新页面时才会更新。
我试过
$scope.$watch('ngCart.totalCost()', function() {
this.totalCost = ngCart.totalCost();
});
但是totalCost
根本没有在视图中显示。
您可以查看我的代码here
的plunkr提前致谢
答案 0 :(得分:1)
更改为,
$scope.$watch('ngCart.totalCost()', function() {
this.totalCost = ngCart.totalCost();
}.bind(this));
因为手表回调是由angular调用的,所以此函数中的 this 值不指向控制器的实例。
这是你的插件, http://plnkr.co/edit/HoEC0obWOPFLWbSojO7F?p=preview
我已更改其中的监视定义,因为ngCart.totalCost不是作用域上的属性。