在输入更改时不执行把手助手

时间:2017-08-15 19:17:29

标签: ember.js handlebars.js

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

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

1 个答案:

答案 0 :(得分:0)

您的matchedFilters帮助程序很可能没有观察到is-selected - 因为您很可能只是修改其内容(推送状态ID)而不是将数组实例设置为新数组。 / p>

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

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