2017-08-15 83 views
0
<select name="state"> 
    {{#each states as |state|}} 
     <option value={{state.id}} disabled={{is-selected state.id matchedFilters}}>{{state.name}}</option> 
    {{/each}} 
</select> 

當用戶選擇一個選項,我會將該選項添加到matchedFilters數組。現在我想要選擇的選項被禁用。所以我寫了一個幫手。手把幫手不執行輸入變化

export function isSelected(params) { 
    let selected = params[0]; 
    let options = params[1]; 
    return options.indexOf(selected) >= 0;; 
} 

但是這個幫手只在加載時執行。每次匹配過濾器發生更改時,我都希望該幫助程序執行。

回答

0

很可能你的matchedFilters沒有被你的is-selected助手遵守 - 因爲你很可能只是修改其內容(推送狀態ID)而不是將數組實例設置爲新數組。

我已經創建了兩個工作版本的is-selected助手的旋轉。希望能爲你清除它。

https://ember-twiddle.com/302ac612ba08293184a09c452ef0d8e0?openFiles=helpers.is-selected-smart.js%2C

+0

它被觀看,但結合不改變,就像你提到的,只是內容。 – locks

+0

正確 - 先前提到的助手在twiddle中的第一個實現實際上表明綁定在您明確設置數組時更新。感謝您清理它! – xoma