AngularJs - 使用视图模型在ng-repeat中进行双向绑定

时间:2015-01-25 08:53:05

标签: angularjs

我的ng-repeat中有一系列复选框:

<tr data-ng-repeat="item in blogCategory.items track by $index">
     ....
   <td>
      <label class="toggle">
      <input type="checkbox" name="checkbox-toggle" checked="checked"
         ng-model="blogCategory.items[$index].publish" ng-true-value="'YES'" ng-false-value="'NO'">
         <i data-swchon-text="YES" data-swchoff-text="NO"></i></label>
  </td>
</tr>

我的样本中有2个类别项,第一个是发布的假,第二个是真的。它们都在复选框元素上返回(false)/ NO。

$ scope vm是BlogCategory,属性/字段是发布。

如何正确绑定上面的输入元素?

由于

2 个答案:

答案 0 :(得分:1)

看起来angular已将ngTrueValuengFalseValue的参数类型从1.2.x中的字符串更改为1.3.x中的表达式。

尝试删除值周围的单引号,使其看起来像

ng-true-value="YES" ng-false-value="NO"

您可能正在查看latest上的文档,因为它是默认位置,但您的版本可能是1.2。

https://code.angularjs.org/1.2.27/docs/api/ng/input/input%5Bcheckbox%5D

答案 1 :(得分:0)

在这里:http://jsfiddle.net/nx22cwwg/1/

所以你的问题出在ng-model上。你想要item.publish。所以在我的代码中(与你的代码几乎相同,我没有查看确切的属性名称和内容)我有:

<ul>
    <li data-ng-repeat="item in items">
      <input type="checkbox" name="checkbox-toggle" checked="checked"
       ng-model="item.isPublished" ng-true-value="YES" ng-false-value="NO" />
        {{ item.name}}
       </li>
</ul>