【发布时间】:2016-12-28 20:51:32
【问题描述】:
我的模型有 2 个属性(baseCurrency 和 otherCurrencies),其值通过 2 个 ember power selects 下拉菜单在表单中选择,其选项取决于 2 个计算属性(baseCurrencyOptions 和otherCurrencyOptions)
控制器
...
otherCurrencyOptions: Ember.computed('model.baseCurrency', function() {
console.log(`allCurrencies changed to: ${this.get('allCurrencies')}`);
return Ember.A(this.get('allCurrencies')).removeObject(this.get('model.baseCurrency'));
}),
baseCurrencyOptions: Ember.computed('model.otherCurrencies', function() {
console.log(`allCurrencies changed to: ${this.get('allCurrencies')}`);
return Ember.A(this.get('allCurrencies')).removeObjects(this.get('model.otherCurrencies'));
})
...
allCurrencies 属性包含所有货币的列表,它不应随时间而改变。
模板
{{#power-select searchEnabled=true options=baseCurrencyOptions selected=model.baseCurrency onchange=(action (mut model.baseCurrency) as |currency|}}
{{currency}}
{{/power-select}}
{{#power-select-multiple searchEnabled=true options=otherCurrencyOptions selected=model.otherCurrencies onchange=(action (mut model.otherCurrencies)) as |currency|}}
{{currency}}
{{/power-select-multiple}}
问题是,每次我在两个下拉菜单中的一个或另一个中选择一种货币时,allCurrencies 属性都会更新,以不可逆的方式丢失每种选定的货币。我希望Ember.A() 能够在不修改 `allCurrencies! 的情况下创建一个全新的对象。此外,我收到以下警告:
弃用:您在一次渲染中修改了 concatenatedTriggerClasses 两次。这在 Ember 1.x 中不可靠,将在 Ember 3.0 中删除 [弃用 id: ember-views.render-double-modify]
【问题讨论】:
标签: ember.js