当我使用MD-separator-keys的MD-CHIPS时,它起作用。如果我添加MD-autocomplete,则MD-Separator-Key不起作用。
我的使用方式:
<md-chips ng-model="chips.selectedChips" md-add-on-blur="true" md-separator-keys="customKeys"
md-transform-chip="chips.transformChip($chip)"
md-require-match="chips.allowToAddNew" md-autocomplete-snap>
<md-autocomplete
md-selected-item="chips.selectedItem"
md-search-text="chips.searchText"
md-items="item in chips.querySearch(chips.searchText)"
md-item-text="chips.getText(item)"
placeholder="{{ field.hint }}">
<span md-highlight-text="chips.searchText">{{ chips.getText(item) }}</span>
</md-autocomplete>
<md-chip-template>
<span>{{ chips.getText($chip) }}</span>
</md-chip-template>
</md-chips>
Customeys的初始化:
scope.customKeys = [ $mdConstant.KEY_CODE.ENTER, $mdConstant.KEY_CODE.COMMA, 186 ];
问题是:如何使其工作?
P.S。由于某种原因,插入式插件不正常,也很高兴找出如何修复它。
P.P.S。我在Github上发现了封闭的问题,因此他们不会解决此有效问题。迷人。
好。我知道这不是一个完美的解决方案,而是解决方法。这是我在自定义指令的链接方法中添加的内容:
scope.$watch('chips.searchText', function(newValue, oldValue) {
if (!newValue || newValue.length < 2) {
return;
}
if (";,".indexOf(newValue.substring(newValue.length - 1)) < 0) {
return;
}
var chipName = newValue.substring(0, newValue.length - 1);
if (!scope.chips.selectedChips) {
scope.chips.selectedChips = [];
}
scope.chips.selectedChips.push(scope.chips.transformChip(chipName));
scope.chips.searchText = '';
});
我从 md-chips
中删除了 md-separator-keys
,因为它变得完全冗余