Javascript 角度绑定不会更新

Javascript 角度绑定不会更新,javascript,angularjs,Javascript,Angularjs,我正在使用angularjs为一个电子商务网站做一个前端,到目前为止,我遇到的唯一问题是购物车的实现。我有一个提供购物车功能的服务,它有原型方法来添加,更改,以及从购物车中删除项目。下面是它的一个非常基本的版本(它包装在服务声明中): 这段代码在直接使用时似乎工作得很好,但在控制器中绑定时有一个奇怪的问题。这是购物车控制器: app.controller('CartCtrl', [ '$scope', 'Cart', function($scope, Cart) { $sco

我正在使用angularjs为一个电子商务网站做一个前端,到目前为止,我遇到的唯一问题是购物车的实现。我有一个提供
购物车
功能的服务,它有原型方法来
添加
更改
,以及
从购物车中删除
项目。下面是它的一个非常基本的版本(它包装在服务声明中):

这段代码在直接使用时似乎工作得很好,但在控制器中绑定时有一个奇怪的问题。这是购物车控制器:

app.controller('CartCtrl', [
  '$scope',
  'Cart',
  function($scope, Cart) {
    $scope.items = Cart.getItems();
    $scope.total = Cart.getTotal();
    $scope.delete = function(item){ Cart.remove(item) };
  }
]);
将产品添加到购物车时,
$scope.items
将更新并显示在
ng repeat
ed列表中,但
$scope.total
绑定不起任何作用。我知道它实际上正在更新,因为我在调试时将
console.log
s放在了所有地方。我还尝试在总数更新后调用
$rootScope.$apply()
,但它只是出错,因为它已经在运行


有人有什么想法吗?谢谢你的帮助

看看这是不是你的问题。。。这条线

$scope.total = Cart.getTotal();
在$scope上创建一个
total
属性,由于getTotal()返回一个基本值,$scope.total被设置为0。此处没有绑定,因此当购物车的总价发生变化时,$scope.total将不会更新


($scope.items将在购物车的项目更改时更新,因为$scope.items被分配了对项目数组的引用。)

我想可能是这样的。有没有办法让它指向它?$scope.total=function(){Cart.getTotal()}可能是最简单的方法。您还可以将总价放入购物车中的一个对象中,然后Cart.getItems()将返回如下内容。someObj.total\u price谢谢顺便说一句,这个答案帮助我了解了发生了什么。
$scope.total = Cart.getTotal();