2014-11-24 22 views
0

'拒絕' 既然我有以下先後在計算關係不確定的許多關係無法讀取屬性未定義

型號

var Artistecontract = ErrorManaged.extend({ 
    name: DS.attr('string'), 
    email: DS.attr('string'), 
    signatoryEmail: DS.attr('string'), 
    address: DS.attr('string'), 
    engagements: DS.hasMany('engagement', { async: true }), 
    artisteproject: DS.belongsTo('artisteproject', { async: true }), 
}); 

控制器

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') 
}); 

路線

var ArtistecontractEngagementRoute = AuthenticatedRoute.extend({ 
    model: function(params) { 
    return this.store.find('artistecontract', params.id); 
    }, 
    actions: { 
    include: function (artisteproject, engagement) { 
     artisteproject.get('engagements').then(function (engagements) { 
     engagements.pushObject(engagement); 
     artisteproject.save(); 
     }); 
    } 
    } 
}); 

當我訪問availableEngagements屬性然後我收到

Cannot read property 'reject' of undefined 

我想要做的就是從那些未在約定屬性artisteproject獲得約定的陣列。

我在做什麼錯?或者有更好的方法來做到這一點。

回答

0

我不得不做出的承諾,合同

_this.store.find('artistecontract', _this.get('id')).then(function (artistecontract) { 
    return Ember.RSVP.all([ 
     artistecontract.get('engagements'), 
     artistecontract.get('artisteproject') 
    ]).then(function(){ 
     return artistecontract; 
    }); 
    }) 
2

你呼籲this.get('artisteproject.engagements').reject,但錯誤信息告訴你this.get('artisteproject.engagements')是不確定的,這意味着無論是

  1. this.get('artisteproject')是不確定的,或者
  2. this.get('artisteproject.engagements')是不確定的。

根據您發佈的代碼,您從未在控制器上定義過artisteproject屬性。在Ember中,無論您從路由的model掛鉤返回的內容都被設置爲相關控制器的model屬性。所以,在你的控制器代碼,試試這個來代替:

this.get('model.engagements').reject... 
+0

有趣的是的齧合部分,當我通過其中this.get('artisteproject ')或 this.get('artisteproject.engagements') 到它們確實被定義的視圖。 我試過模型。以及運氣不佳:( – 2014-11-25 08:20:01

+0

在這些行之前添加一個「調試器」,並查看它們的評估結果。 – 2014-11-26 14:17:27

相關問題