我有這樣的:從模型的靜態(aka類級別)方法訪問商店?
Post.reopenClass({
myStaticMethod: function() {
// I need to access the store here!
// this.store => undefined
}
});
PS爲什麼我就不能導入存儲什麼?
我有這樣的:從模型的靜態(aka類級別)方法訪問商店?
Post.reopenClass({
myStaticMethod: function() {
// I need to access the store here!
// this.store => undefined
}
});
PS爲什麼我就不能導入存儲什麼?
因爲模型類沒有連接到特定的商店。商店保存模型的實例,而不是模型類。模型實例是通過store.createRecord(model...
從商店創建的,並且生成的實例被放置在該商店中。因此理論上,您可以在不同的商店中擁有相同模型類的實例。
如果你真的想訪問商店,你可以做一個容器查找(代碼氣味)。或者,如果可能的話,您可以安排將商店作爲參數傳遞給myStaticMethod
(更好)。
我想或許你想從靜態方法訪問商店,因爲你想創建一個記錄,或找到一個,或什麼的。假設你想寫一個createRecord
的變體,它做了一些特殊的事情。解決這個問題的明顯方法是將其添加到主商店,或者將其放入DS.Store
的子類中,並將其作爲store.createRecordSpecial('model', ...
調用。
謝謝,torazaburo。你的假設是正確的:我想要一個定製的'createRecord'。難點在於它應該是一個承諾('store.find')。但我想到,我不需要記錄立即出現實例。因此,而不是在模型上使用靜態方法,我將執行'store.createRecord('foo')。customize()'。該記錄將顯示爲非定製的,但在承諾解決時將自定義。我認爲這很好。 –
您是否試圖訪問另一個模型? – givanse