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