マルチセレクターとして 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 のコンタクト チップを使用できることは承知していますが、ぼかしをどのように実現できるかまだ疑問に思っていました。