2016-12-06 9 views
1

Ember Power Selectで検索を実行する前に、選択ボックスを閉じようとしています。私は、彼がリストを貼り付けて、選択したアイテムを自動的に設定する場合、ユーザーが探しているものを知っていると仮定しています。Ember Power Select - 閉じるにはEPSの選択

select.actions.close()を使用しようとしましたが、onClose()イベントに関連しているようです。私はまた、プロパティopenedを使用しようとしましたが、それを変更しても差は見られませんでした。

マイコンポーネント

{{#power-select-multiple 
     renderInPlace=true 
     search=(action "mySearch") 
     selected=selected_item 
     onchange=(action (mut selected_item)) 
     oninput=(action "checkPastingMultipleElements") 
     opened=checkSelect 
     as |name| 
}} 
    {{name}} 
{{/power-select-multiple}} 

自分の行動

checkPastingMultipleElements(text, select) { 
     this.set('selecteded_item', [text]); 
     // error 
     // select.actions.close() 

     // does nothing 
     // if (text.length === 4) { this.set('checkSelect', false); }    

     return false; // if true, it executes the search 
} 

答えて

3

あなたの最初の推測ではselect.actions.closeが可能です使用して、右でしたが、あなたは、二重レンダリング問題を回避するために、実行ループでこれをエンキューする必要があります。

また、値を選択して選択を閉じることをお望みなら、select.actions.chooseはまさにあなたが望むものです。

checkPastingMultipleElements(text, select) { 
    Ember.run.scheduleOnce('actions', null, select.actions.choose, [text]); 
    } 
+1

まず、この素晴らしいアドオンを開発していただきありがとうございます。第二に、答えのおかげで、それは正しい答えに私を導いた。私がclose()を使う必要があったのは、テキストを複数の選択肢に分割する必要があったからです。このように私は 'this.set( 'selected_item'、text.split(" "));' – mk2

+0

を実行することができましたまた、私は元の答え(選択を使用して)、テキストを削除するとエラーをスローしますアサーションが失敗しました:\ '{{power-select-multiple}} \'バックスペース "を使用してオプションを削除するためのオプションが文字列でない場合、\' searchField \ 'が必要です。 – mk2

+0

はい、正しいです。例として '{{power-select-multiple searchField =" name "}}'。これにより、ドキュメントにはこれが言及されていないことが分かりました。私はそれを更新する必要があります。 –

関連する問題