1

マルチセレクターとして Angular Material で md-autocomplete を使用しようとしています。アイデアは、オートコンプリートから選択された要素が選択後にオブジェクト配列に追加され、選択が md-autocomplete から削除されるということです。md-autocomplete をクリアできましたが、フォーカスは md-autocomplete 入力にとどまっているため、オートコンプリートの提案は引き続き表示されます。例: http://cdpn.io/QjQGVQ

コード:

function selectedItemChange(item) {
  $log.info('Item changed to ' + JSON.stringify(item));
  if(item)
  {
    //check if item is already selected
    if($filter('filter')(vm.contactsSelected, function (d) {return d.id === item.id;})[0])
      {
        $log.info('Item already selected. Will not add it again.');
      }
    else
      {
        //add id to object
        vm.contactsSelected.push(item);    
      }
    // clear search field
    vm.searchText = '';
    vm.selectedItem = undefined;

    //somehow blur the autocomplete focus
    //$mdAutocompleteCtrl.blur();
  }
}

PS: 代わりに Angular Material のコンタクト チップを使用できることは承知していますが、ぼかしをどのように実現できるかまだ疑問に思っていました。

4

1 に答える 1

0

リスト内で md-no-cache="true" プロパティを設定すると、リストは消えますが、入力フィールドはクリアされません。入力フィールドをクリアしてリストを表示したままにするよりも良い解決策だと思いますが、それはあなた次第です。

于 2016-07-03T16:27:15.147 に答える