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

Javascript js按名称查找模型项,然后将其添加到现有的不同模型记录中,javascript,ember.js,ember-data,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') }); 通过单击自动完成组件结果,执行以下操作: a

伙计们,我没办法想清楚。挣扎了几个小时。我有一个可以有多个类别的文章模型:

// 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类别记录中没有添加任何类别。 所以问题是,如何首先查找类别项,然后将其添加到文章的hasMany记录中


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

哇!我可以回答我自己的问题。我不知道如何使用.then函数的this

我还对我的代码进行了一些清理,如下所示:

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));
   });
}
谢谢你过来