2015-01-04 39 views
2

官方documentation for DS.Model描述:DS.Model`relationships`屬性在記錄的`init`中不可用?

當我這樣做:

App.Parent = DS.Model.extend({ 
    children: DS.hasMany('child'), 
    init: function() { 
    this._super(); 

    this.eachRelationship(function(foo, bar, baz) { 
     console.log('each relationship', foo, bar, baz); 
    }); 
    } 
}); 

...它打印出的children關係。

然而,當我這樣做:

App.Parent = DS.Model.extend({ 
    children: DS.hasMany('child'), 
    init: function() { 
    this._super(); 

    console.log('realtionships', this.get('relationships')); 
    } 
}); 

...它打印undefined

爲什麼?我如何在記錄初始化期間訪問relationships屬性,而不回覆到eachRelationship方法?

演示:http://emberjs.jsbin.com/vapama/9/edit?js,output

回答

2

relationships是在該類不是實例定義(靜態旁的屬性名告訴我們這一點)。

var relationships = Em.get(App.Parent, 'relationships'); 

http://emberjs.jsbin.com/zebalupoba/1/edit

+0

Kingpin2k是男人,像往常一樣:) – Kalman 2015-01-04 17:34:39

+0

謝謝你的回答。顯然,靜態屬性包含不同於我想要的信息。 – 2015-01-04 17:57:36