如何使MD-Chips MD-Separator-Keys与MD-AutoComplete一起工作



当我使用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,因为它变得完全冗余

最新更新