2016-10-27 3 views
0

Я использую Ember 2.4.2Ember перезаписана модель свойства не сериализуемый

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

форму, что эти свойства используются в действительно показывает, что тип установлено в «мешок», когда цвет синий, но отправка этих данных на сервер не выполняется (да, синий цвет был отправлен на сервер).

Это правильный способ переписать свойства модели?

+0

Только свойства, определенные с помощью 'attr', сериализуются, поэтому CP не будет. Вам нужен другой подход: \ – locks

+1

@locks Спасибо за знание, я работал вокруг него, добавляя наблюдателя :) – a7omiton

ответ

0

Решение должно было создать наблюдателя в модели вместо того, чтобы перезаписать свойство, поскольку @lock упоминает только свойства, определенные с помощью attr, которые передаются вашему сериализатору (так как он имеет метод сериализации).

colorChanged: Ember.observer('color', function() { 
    if (this.get('color') === 'blue') { 
     this.set('product_type', 'bag'); 
    } 
}) 
Смежные вопросы