将动态值绑定到具有ng-repeat的复选框的ng-model

时间:2016-05-25 11:25:33

标签: angularjs angularjs-ng-repeat ng-repeat angular-ngmodel angularjs-ng-model

在我的控制器中,我有一个像这样的对象数组:

this.set = [{
    "display": "Name",
    "pass": "name"
}, {
    "display": "Subject",
    "pass": "subject"
}, {
    "display": "Batch",
    "pass": "batch"
}];

我提供了复选框:name, batch and subject。选中复选框将过滤类别。

HTML:

<div flex class="filters" layout="row"  ng-repeat="menu in menu">
    <md-checkbox  class="md-primary" ng-model="query.{{menu.pass}}">
        {{menu.display}}
    </md-checkbox>
</div>

{{menu.display}}正确显示名称。现在我想动态绑定ng模型。这怎么可能?

1 个答案:

答案 0 :(得分:2)

ng-model属性已经需要一个角度表达式,所以抛入内部的花括号是行不通的,而是尝试类似:

<div flex class="filters" layout="row"  ng-repeat="menu in set">
    <md-checkbox  class="md-primary" ng-model="query[menu.pass]">
       {{menu.display}}
    </md-checkbox>
</div>

现在它只是通过传递menu.pass的值来设置query.batch

DEMO:https://jsfiddle.net/qvw9bmhe/32/

只需点击名称即可查看查询对象更新。