Создание новой записи с использованием Ember-Model
Я пытался часами пытаться заставить это работать, используя Ember-Data без результата, поэтому решил попробовать Ember-Model; все еще нет радости.
У меня есть следующее:
App.Item = Ember.Model.extend({
itemName: Ember.attr(),
});
App.Strat = Ember.Model.extend({
stratName: Ember.attr(),
items: Ember.hasMany('App.Item',{key: 'items', embedded: true});
App.Strat.adapter = Ember.FixtureAdapter.create();
App.Strat.FIXTURES =
[
{id: 1, stratName: 's1', items:
[{id: 1, itemName: 'I1'}]},
{id: 2, stratName: 's2', items:
[{id: 2, itemName: 'I2'},
{id: 3, itemName: 'l3'}]}
];
Казалось, что до этого момента все работало нормально. Я могу отображать данные прибора через шаблоны. Я хочу разрешить пользователю добавлять дополнительные записи strat, показывая на экране предварительно заполненную запись strat, позволяя пользователям вносить изменения, а затем сохранять ее с двумя записями strat, загруженными из данных фикстуры. Я попробовал следующее:
var dummyStrat =
{id: 100, stratName: "s5", items:
[{id: 101, itemName: "I5", strategy: 100}]};
var newStrat = App.Strat.create (dummyStrat);
newStrat.save();
Это породило следующую ошибку:
Ошибка типа: this.get(ключ).toJSON не является функцией.
Но без ошибок, если я сделал это:
var dummyStrat =
{id: 100, stratName: "s5"};
var newStrat = App.Strat.create (dummyStrat);
newStrat.save();
Что я делаю неправильно?
1 ответ
Что произойдет, если вы удалите стратегию: 100 из вызова создания? В моем приложении почти такой же код, за исключением того, что я не устанавливаю переменную, которая не является атрибутом в моей модели.
Мое другое предложение было бы попытаться переименовать ключ items в stratItems, чтобы у ключа не было того же имени, что и у вычисляемого атрибута hasMany.