md-chips md-select 在 multi select 模式下
md-chips with md-select in multi select mode
当我试图在 selecting 来自 md-select 的多个值上生成 md-chips 时,它不起作用。 md-chips 是否仅适用于自动完成分析器和输入字段?
<md-chips ng-model="launchAPIQueryParams.type">
<md-select name="launchCalType" ng-model="launchAPIQueryParams.type"
multiple="true" placeholder="Launch Type"
md-on-close='applylaunchFilter("type")'>
<md-option ng-repeat="typeOption in launchTypeOptions" ng-value="typeOption[1]">
{{typeOption[0]}}
</md-option>
</md-select>
</md-chips>
简短的回答:没有。
<md-chips>
组件只会将 <input>
或 <md-autocomplete>
带入其嵌入的上下文。
然而,同样的事情可以用md-autocompelet
来实现。
将 <md-autocomplete>
上的 md-min-length
键设置为 0,因此它将自动显示菜单,就像 <md-select>
菜单一样。
这是一个例子:
// controller.js
angular
.moduel('mdChipsDemo', [])
.controller('MdChipsDemoCtrl', function() {
var vm = this;
vm.selectedOption = '';
vm.searchText = '';
vm.launchAPIQueryParams = {
types: [],
};
vm.launchTypeOptions = [
{name: 'Op1', value: 1},
{name: 'Op2', value: 2},
{name: 'Op3', value: 3},
{name: 'Op4', value: 4},
];
});
// template.html
<div ng-app="mdChipsDemo" ng-controller="MdChipsDemoCtrl as vm">
<md-chips ng-model="vm.launchAPIQueryParams.types">
<md-autocomplete
md-selected-item="vm.selectedOption"
md-search-text="vm.searchText"
md-items="typeOption in vm.launchTypeOptions"
md-item-text="typeOption.name"
md-min-length="0"
placeholder="Search for a launchTypeOptions">
<span md-highlight-text="vm.searchText">{{typeOption.name}}</span>
</md-autocomplete>
<md-chip-template>
<span>{{$chip.name}}</span>
</md-chip-template>
</md-chips>
</div>
如果你的最终目标是拥有多个 select 能力,<md-autocomplete>
也会暴露 <md-item-template>
可以放置你的 <md-select>
的地方。检查 doc for md-autocomplete 你会看到的。
或者如果您真的坚持使用 <select>
,npm 调用 md-chips-select
上有一个第 3 方组件可以满足您的需求。
https://www.npmjs.com/package/md-chips-select
当我试图在 selecting 来自 md-select 的多个值上生成 md-chips 时,它不起作用。 md-chips 是否仅适用于自动完成分析器和输入字段?
<md-chips ng-model="launchAPIQueryParams.type">
<md-select name="launchCalType" ng-model="launchAPIQueryParams.type"
multiple="true" placeholder="Launch Type"
md-on-close='applylaunchFilter("type")'>
<md-option ng-repeat="typeOption in launchTypeOptions" ng-value="typeOption[1]">
{{typeOption[0]}}
</md-option>
</md-select>
</md-chips>
简短的回答:没有。
<md-chips>
组件只会将 <input>
或 <md-autocomplete>
带入其嵌入的上下文。
然而,同样的事情可以用md-autocompelet
来实现。
将 <md-autocomplete>
上的 md-min-length
键设置为 0,因此它将自动显示菜单,就像 <md-select>
菜单一样。
这是一个例子:
// controller.js
angular
.moduel('mdChipsDemo', [])
.controller('MdChipsDemoCtrl', function() {
var vm = this;
vm.selectedOption = '';
vm.searchText = '';
vm.launchAPIQueryParams = {
types: [],
};
vm.launchTypeOptions = [
{name: 'Op1', value: 1},
{name: 'Op2', value: 2},
{name: 'Op3', value: 3},
{name: 'Op4', value: 4},
];
});
// template.html
<div ng-app="mdChipsDemo" ng-controller="MdChipsDemoCtrl as vm">
<md-chips ng-model="vm.launchAPIQueryParams.types">
<md-autocomplete
md-selected-item="vm.selectedOption"
md-search-text="vm.searchText"
md-items="typeOption in vm.launchTypeOptions"
md-item-text="typeOption.name"
md-min-length="0"
placeholder="Search for a launchTypeOptions">
<span md-highlight-text="vm.searchText">{{typeOption.name}}</span>
</md-autocomplete>
<md-chip-template>
<span>{{$chip.name}}</span>
</md-chip-template>
</md-chips>
</div>
如果你的最终目标是拥有多个 select 能力,<md-autocomplete>
也会暴露 <md-item-template>
可以放置你的 <md-select>
的地方。检查 doc for md-autocomplete 你会看到的。
或者如果您真的坚持使用 <select>
,npm 调用 md-chips-select
上有一个第 3 方组件可以满足您的需求。
https://www.npmjs.com/package/md-chips-select