md-autocomplete按对象值

时间:2017-08-22 12:06:34

标签: angularjs autocomplete angular-material md-autocomplete

您是否知道根据一个对象参数的值进行md-autocomplete选择的方法?

我想在加载数据时预先选择自动复合中的一些数据。

例如,我从服务器获取的数据是:

{"building": "0015", "room": "0113", "available": true}

但我的自动填充功能的建筑物列表可能如下所示:

[{"Value": "0015", "DisplayValue": "Offices"},{"Value": "0813", "DisplayValue": "factory"}]

如果我将“数字”参数传递给“数字”参数,是否可以让我的自动完成功能预先选择“办公室”建筑物?

我的HTML看起来像这样:

<md-autocomplete ng-disabled="!vm.edit.value" md-selected-item="vm.activityData.building"
                         md-items="item in vm.getList('Buildings')"
                         md-search-text="vm.autocompleteTexts.Buildings"
                         md-selected-item-change="vm.setAutocompleteValue('building')"
                         md-item-text="item.DisplayValue" md-min-length="0"
                         md-no-cache="true" md-select-on-match="true"
                         md-delay="100"
                         md-floating-label="Building"
                         md-dropdown-position="bottom">
            <md-item-template>
                <span>{{item.DisplayValue}}</span>
            </md-item-template>
            <md-not-found>
                No values found
            </md-not-found>
        </md-autocomplete>

getList就像这样

getList(listname: string): any[] {
        return this.serverdata.Lists[listname].filter(
            (item) => {
                return item.DisplayValue.toLowerCase().indexOf(this.autocompleteTexts[listname].toLowerCase()) >= 0;
            });
    }

setAutocompleteValue还没有做任何事情,但它存在,这将用于一些自动填充,他们必须在更改选择后填充其他字段。

由于“数组中的项目”是标准的角度表达式,我以为我可以用轨道扩展它,但是这不会令人遗憾......

0 个答案:

没有答案