我已经构建了一个简单的购物车示例:
这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
值。
答案 0 :(得分:2)
尝试:
<span ng-class='{isMoreThan3: IsMoreThan3(item)}'>{{item.title }}</span>
JS:
$scope.IsMoreThan3=function (item){
return item.quantity>3;
};
原因是ng-repeat
将创建自己的范围,访问$scope.item
将无法访问循环中的当前项