2014-12-26 96 views

回答

4

因爲模型類沒有連接到特定的商店。商店保存模型的實例,而不是模型類。模型實例是通過store.createRecord(model...從商店創建的,並且生成的實例被放置在該商店中。因此理論上,您可以在不同的商店中擁有相同模型類的實例。

如果你真的想訪問商店,你可以做一個容器查找(代碼氣味)。或者,如果可能的話,您可以安排將商店作爲參數傳遞給myStaticMethod(更好)。

我想或許你想從靜態方法訪問商店,因爲你想創建一個記錄,或找到一個,或什麼的。假設你想寫一個createRecord的變體,它做了一些特殊的事情。解決這個問題的明顯方法是將其添加到主商店,或者將其放入DS.Store的子類中,並將其作爲store.createRecordSpecial('model', ...調用。

+0

謝謝,torazaburo。你的假設是正確的:我想要一個定製的'createRecord'。難點在於它應該是一個承諾('store.find')。但我想到,我不需要記錄立即出現實例。因此,而不是在模型上使用靜態方法,我將執行'store.createRecord('foo')。customize()'。該記錄將顯示爲非定製的,但在承諾解決時將自定義。我認爲這很好。 –