我正在使用Ember 2.4.2
app/models/product.js
export default DS.Model.extend({
type: attr('string'),
color: attr('string')
});
app/models/blue-bags.js
export default Product.extend({
type: Ember.computed('color', function() {
if (this.get('color') === 'blue') {
return 'bag';
}
return '';
})
});
这些属性的使用形式显示,当颜色为蓝色时,类型设置为“bag”,但是将此数据发送到服务器时(将颜色发送到服务器时,颜色为蓝色)。
这是覆盖模型属性的正确方法吗?
答案 0 :(得分:0)
解决方案是在模型中创建一个观察者而不是覆盖属性,因为@lock提到只有用attr
定义的属性才会传递给你的序列化器(因为它有一个序列化方法)。
colorChanged: Ember.observer('color', function() {
if (this.get('color') === 'blue') {
this.set('product_type', 'bag');
}
})