Ember.js按名称查找模型项,然后将其添加到现有的不同模型hasMany记录中

时间:2013-12-04 12:41:15

标签: javascript ember.js ember-data

伙计们我无法理解它。现在苦苦挣扎几个小时。我有一个文章模型,可以有多个类别:

// parent
App.Article = DS.Model.extend({
    name: DS.attr('string'),
    category: DS.hasMany('category')
)};

// child
App.Category = DS.Model.extend({
    name: DS.attr('string')
});

通过单击自动完成组件结果,将执行以下操作:

  addCategory: function (categoryName) {
        // for the sake of simplicity a default name
        categoryName = 'car';

        // find category instance by name
        this.store.find('category').then(function(category) {
            var categoryItem = category.filterBy('name', categoryName);

            // get categories and add the category to it
            this.get('category').pushObject(categoryItem);
        });

    },

你应该想到的问题是什么。嗯,问题是没有错误,一切似乎都没问题。

然而:

  • 当我查看Ember Inspector时,我清楚地看到创建了一个新的文章记录,并且我看到已经创建的类别。但是没有类别添加到hasMany类别记录中。

所以问题是,如何首先查找Category项,然后将其添加到文章的hasMany记录中?

大编辑:我删除了一些不相关的代码和文字。希望我的问题现在更清楚了。

1 个答案:

答案 0 :(得分:0)

Whohoo!我可以回答我自己的问题。我很困惑使用this函数的.then

我还清理了我的代码:

addCategory: function (categoryName) {
   var self = this;

   // find category model by name
   this.store.find('category').then(function(category) {
       self.get('category').pushObject(category.findBy('name', categoryName));
   });
}

非常感谢您的光临。