0

我有一个多选下拉菜单,但我只想选择其中一个选项,然后当该模式打开时保存该下拉选择。

现在下拉菜单是多的,当我关闭模式时,这些值仍然被选中。我想要相同的功能,但在单个选择下拉列表中。不知道我错过了什么。

           <md-select ng-model="itemSet.filters["names"].values" multiple aria-label="{{itemSet.filters["names"].label}}">
                 <md-option ng-value="item" ng-repeat="item in itemSet.filters["names"].options">{{item.label}}</md-option>
              </md-select>

当我删除 md-select 中的多个选项时,我在控制台中收到错误:this.values.forEach 不是函数
,这是我的 itemSet 名称对象。

'names': {
            class: 'Filter',
            name: 'names',
            label: 'names',
            labelField: 'label',
            options: [
                            {
                                label: 'filled',
                                api: 'table',
                                key: '!VACANT'                              
                            },
                            {
                                label: 'vacant',
                                api: 'table',
                                key: 'VACANT'   
                            }
            ]

几乎停留在这一点上,任何指导都会非常酷。我只想能够从下拉列表中选择一个,然后在打开该模式的模式时将其保留在那里。

4

1 回答 1

0

在多模式下,ng-model是一个值数组。但是既然你去掉了multiple属性,它只包含单个选择的值,当然没有forEach方法。您没有包含您迭代的控制器代码this.values,但这是您需要更改的地方,以及将下拉列表更改为:

<md-select ng-model="itemSet.filters["names"].value" aria-label="{{itemSet.filters["names"].label}}">
    <md-option ng-value="item" ng-repeat="item in itemSet.filters["names"].options">{{item.label}}</md-option>
</md-select>

在您的控制器中,this.value直接使用(假设this=== itemSet.filters["names"])。

于 2021-08-03T02:17:36.647 回答