在我的應用程序中,我的路線圖中有共同的父/子關係。find()和find(id)觸發到服務器的Ajax調用
App.Router.map(function() {
this.resource('strats', {path: "/"}, function() {
this.route('strat', {path: "/strat/:strat_id"});
});
});
我的理解是,當灰燼首次進入父路由,它調用find()方法來獲取所有模型,通常會觸發一個Ajax調用服務器。然後,當Ember隨後轉換到子路由時,它首先調用find(),然後調用find(id)。如果我正在使用具有身份映射實現的數據層(如Ember-Data或Ember-Model),則對find()和find(id)的這些後續調用應導致從本地內存中獲取數據,而Ember只要應用程序正在運行,就不應該由於對這些函數的調用而啓動對服務器的另一個Ajax調用。如果這種理解是正確的,那麼我不應該在服務器端實現find(id)。
我在我的應用程序中使用Ember-Model。當我在兩條路線之間導航時,我在服務器端看到一個單獨的模型需要一段時間,這意味着調用find(id)有時會觸發對服務器的Ajax調用,這是意外的。上述邏輯中的缺陷在哪裏?
因此,最初由於您在最後一段中提到的時間問題,Ember最初會到達服務器以查找find()和find(n)。但在此之後,只要應用程序正在運行,Ember就不必再次進入服務器,因爲它已經將所有模型存儲在本地。我解釋正確嗎? – ptmoy2
這是正確的。 – Kingpin2k