Angular JS - 服务中的值不会在视图

时间:2016-06-22 16:42:50

标签: angularjs angularjs-directive

我正在使用ng-cart directive开展项目。该指令有一项服务,其中包含一个功能totalCost(),用于更新添加到购物车的总金额。

为了在视图中显示它,我在我的控制器中写了这个:

this.totalCost = ngCart.totalCost();

视图中显示的值是正确的,但问题是当我从购物车添加/删除项目时,此值不会更新,但仅在我刷新页面时才会更新。

我试过

$scope.$watch('ngCart.totalCost()', function() {
    this.totalCost = ngCart.totalCost();
});

但是totalCost根本没有在视图中显示。

您可以查看我的代码here

的plunkr

提前致谢

1 个答案:

答案 0 :(得分:1)

更改为,

$scope.$watch('ngCart.totalCost()', function() {
    this.totalCost = ngCart.totalCost();
}.bind(this));

因为手表回调是由angular调用的,所以此函数中的 this 值不指向控制器的实例。

这是你的插件, http://plnkr.co/edit/HoEC0obWOPFLWbSojO7F?p=preview

我已更改其中的监视定义,因为ngCart.totalCost不是作用域上的属性。