ng-model不会反映变化?

时间:2014-01-19 07:52:36

标签: javascript angularjs

我已经构建了一个简单的购物车示例:

enter image description here

这3行是通过ng-repeat创建的。

我的目标:

当相关数量(红色箭头)为red时,我希望黄色部分变为more than 3

所以这就是我所做的:(http://jsbin.com/eXOgOpA/4/edit

<div ng-repeat='item in items'>
    <span ng-class='{isMoreThan3: IsMoreThan3()}'>{{item.title }}</span>
    <input ng-model='item.quantity'>
    ...
</div>

其中IsMoreThan3是一个函数:

$scope.IsMoreThan3=function (){return $scope.item.quantity>3;};

其中

.isMoreThan3
{
  color:red;
}

但它不起作用。(计算没问题,但颜色永远不会是红色)。

问题:

如何修复控制器代码以获得正确的模型值?

换句话说:

控制器如何知道当前的item.quantity

nb的 我知道我可以将逻辑放入标记但我不想要那样。我希望控制器返回true/false值。

1 个答案:

答案 0 :(得分:2)

尝试:

<span ng-class='{isMoreThan3: IsMoreThan3(item)}'>{{item.title }}</span>

JS:

$scope.IsMoreThan3=function (item){
     return item.quantity>3;
};

原因是ng-repeat将创建自己的范围,访问$scope.item将无法访问循环中的当前项

相关问题