对ng-repeat中的选择字段使用ng-options如何过滤掉先前选择的值?

时间:2017-03-30 17:16:22

标签: javascript angularjs arrays angularjs-ng-repeat ng-options

我正在创建一个可以由用户动态添加的选择下拉列表。单击按钮将执行以下行:"$scope.expenses.push({});"向页面添加新的选择下拉列表供他们选择。

这件作品完美无缺。但我遇到的问题是用户能够在两个字段中选择相同的项目。我无法从下拉字段中成功过滤掉任何其他选定的值。任何指针都很可爱!

我正在考虑使用自定义过滤器来隐藏其他选定值,或者使用ng-change函数来更新我正在循环的数组。

这是我目前的代码:

<div ng-repeat="expense in expenses track by $index">
    <label for="itemDescr_{{$index + 1}}">${item_descr}</label>
    <select id="itemDescr_{{$index + 1}}" name="itemDescr_{{$index + 1}}" ng-model="expenses[$index].ItemCode" ng-class="{submitted:submitted}" required ng-options="benefit.Code as benefit.Description for benefit in purchDescOptions | removeUsedItemsFilter | orderBy:'Description'">
        <option value="">Please select</option>
    </select>
</div>

这是我正在循环的数组($ scope.purchDescOptions):

[
    {
        Code:"HOU",
        Description:"Housewares"
    },
    {
        Code:"ATO",
        Description:"Auto Parts, Equipmnt"
    },
    {
        Code:"APP",
        Description:"Appliances"
    },
    {
        Code:"CLO",
        Description:"Clothing"
    }
]

0 个答案:

没有答案