将对象传递给ngTrueValue失败

时间:2015-05-07 04:56:09

标签: angularjs angularjs-ng-repeat

选择ngModel时,对象是否可以指定为<input type="checkbox">的值?

当我尝试将对象group设置为ng-true-value时,以下操作失败:

<div ng-repeat="group in groups">
   <input type='checkbox' ng-model="array[$index]" ng-true-value="group">
</div>

或者,还有另一种方法可以达到这个目的吗?

1 个答案:

答案 0 :(得分:1)

ng-true-value,但您必须明白ng-true-value需要一个常量。换句话说,如果你这样做了:

<div ng-repeat="group in groups">
  <input type="checkbox" ng-model="array[$index]" ng-true-value="{{group}}">
</div>

并选择第一项,然后以下内容为真:array[0] !== groups[0]。换句话说,您将获得该对象的副本。

相反,您可以执行以下操作来分配实际对象:

<div ng-repeat="group in groups">
  <input type="checkbox" 
         ng-model="selected" 
         ng-change="arr[$index] = (selected && group) || undefined">
</div>