Создание новой записи с использованием 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.

Другие вопросы по тегам