将模型绑定到选定值而不是在项目上选择设置

时间:2017-09-10 06:51:16

标签: javascript angularjs

我有以下代码可以正常工作:

<div class="col-md-12">
    <div class="button-group">
        <button type="button" class="btn btn-default btn-block btn-sm dropdown-toggle" data-toggle="dropdown"><span class="">TurbineNumber</span> <span class="caret"></span></button>
        <ul class="dropdown-menu" style="">
            <li style="padding-left:10px;" ng-repeat="c in turbineNumbersDistinct">
                <label style="font-weight:100;">
                    <input type="checkbox" ng-model="c.Selected" ng-change="filterChanged()" />&nbsp;{{c.Name}}
                </label>
            </li>
        </ul>
    </div>
</div>

但是我想将所选值绑定到一个新数组,而不是在它自己的对象上设置Selected。我找到了一些调用填充绑定数组的函数的示例,但是不可能在内联中执行此操作吗?

2 个答案:

答案 0 :(得分:1)

你的意思是什么?

ng-model="newArray[$index]"

这会将输入绑定到迭代索引中的数组中。

答案 1 :(得分:1)

这是可行的,使用ng-change可以将元素推送或拼接到新的输出数组($scope.output)。

JSFiddle Demo

<强> HTML:

<div ng-controller='MyController' ng-app="myApp">
    <div class="col-md-12">
    <div class="button-group">
        <button type="button" class="btn btn-default btn-block btn-sm dropdown-toggle" data-toggle="dropdown"><span class="">TurbineNumber</span> <span class="caret"></span></button>
        <ul class="dropdown-menu" style="">
            <li style="padding-left:10px;" ng-repeat="c in turbineNumbersDistinct">
                <label style="font-weight:100;">
                    <input type="checkbox" ng-model="selected[$index]" ng-change="selected[$index] ? output.push(c.Name): output.splice(output.indexOf(c.Name), 1)"  />&nbsp;{{c.Name}}
                </label>
            </li>
        </ul>
    </div>
    {{output}}
</div>
</div>