手把帮手不执行输入变化

手把帮手不执行输入变化

问题描述:

<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;; 
} 

但是这个帮手只在加载时执行。每次匹配过滤器发生更改时,我都希望该帮助程序执行。

很可能你的matchedFilters没有被你的is-selected助手遵守 - 因为你很可能只是修改其内容(推送状态ID)而不是将数组实例设置为新数组。

我已经创建了两个工作版本的is-selected助手的旋转。希望能为你清除它。

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

+0

它被观看,但结合不改变,就像你提到的,只是内容。 – locks

+0

正确 - 先前提到的助手在twiddle中的第一个实现实际上表明绑定在您明确设置数组时更新。感谢您清理它! – xoma