Ember.js 在计算关系中有许多未定义的关系无法读取属性';拒绝';未定义的
鉴于我有以下几点 模型 控制器Ember.js 在计算关系中有许多未定义的关系无法读取属性';拒绝';未定义的,ember.js,ember-data,Ember.js,Ember Data,鉴于我有以下几点 模型 控制器 var ArtistecontractEngagementsController = Ember.ObjectController.extend({ availableEngagements: function () { var engagements = this.get('engagements'); return this.get('artisteproject.engagements').reject(function (engagem
var ArtistecontractEngagementsController = Ember.ObjectController.extend({
availableEngagements: function () {
var engagements = this.get('engagements');
return this.get('artisteproject.engagements').reject(function (engagement) {
return engagements.contains(engagement)
});
}.property('artisteproject.engagements', 'engagements')
});
路线
当我访问AvailableEngaments属性时,我会收到
Cannot read property 'reject' of undefined
我想做的是从artisteproject中获取一系列尚未包含在“约定”属性中的约定
我做错了什么?或者有更好的方法来执行此操作。您正在呼叫
。拒绝此.get('artisteproject.engagements')
,但错误消息告诉您此。get('artisteproject.engagements')
未定义,这意味着
this.get('artisteproject')
未定义,或
this.get('artisteproject.engagements')
未定义
根据您发布的代码,您从未在控制器上定义artisteproject
属性。在Ember中,从路由的model
钩子返回的任何内容都将设置为关联控制器的model
属性。因此,在控制器代码中,请尝试以下操作:
this.get('model.engagements').reject...
我必须把约定作为合同承诺的一部分
_this.store.find('artistecontract', _this.get('id')).then(function (artistecontract) {
return Ember.RSVP.all([
artistecontract.get('engagements'),
artistecontract.get('artisteproject')
]).then(function(){
return artistecontract;
});
})
有趣的是,当我将this.get('artisteproject')或this.get('artisteproject.engagements')传递给视图时,它们确实被定义了。我试了试模型。还有,不走运:(在这些行之前添加一个调试器
,然后查看它们的计算结果。
this.get('model.engagements').reject...
_this.store.find('artistecontract', _this.get('id')).then(function (artistecontract) {
return Ember.RSVP.all([
artistecontract.get('engagements'),
artistecontract.get('artisteproject')
]).then(function(){
return artistecontract;
});
})