Angular Material “md-chips”指令如何控制选择的输入字段集中在非芯片容器上?

芯片模板:

<md-chips name="limits" md-autocomplete-snap=""
          ng-model="ctrl.selectedVegetables"
          md-transform-chip="ctrl.transformChip($chip)"
          md-require-match="ctrl.autocompleteDemoRequireMatch"
          md-enable-chip-edit="true"
          >

  <md-autocomplete md-min-length="0"
                   md-selected-item="ctrl.selectedItem" md-search-text="ctrl.searchText"
                   md-items="item in ctrl.querySearch(ctrl.searchText)" md-item-text="item.name"
                   placeholder="Search for a vegetable" md-no-cache="true">
      <span md-highlight-text="ctrl.searchText">{{item.name}}</span>
  </md-autocomplete>

  <md-chip-template>

    <label>{{$chip.name}}</label>
    <input required type="number" ng-model="$chip.change" step="0.01"/>
    <md-icon style="margin-top: -6px"> %</md-icon>

  </md-chip-template>
</md-chips>

有工作示例:
enter link description here

如何选择芯片时使输入字段聚焦,而不是使芯片容器自身聚焦。尝试编辑数字值,您将理解我的意思。

最佳答案

这是一个解决方案:

1-为要聚焦的输入添加一个ID,以使其唯一,我将此ID设置为chip.$$hashkey:
<input type="number" step="0.01" required ng-model="$chip.change" ng-attr-id="{{$chip.$$hashKey}}" style="padding-left: 3px; margin-left: 3px" />
2-在选择事件处理程序中,您强制焦点:
self.selectChip = (data) => { if(data) document.getElementById(data.$$hashKey).focus();}

10-08 15:36