我目前正在學習Ember和我正在做一個簡單的應用程序,但我遇到了一個奇怪的問題。我有一個路由設置,它只在我重新加載頁面時拉取數據。這裏是我的代碼:路由只加載頁面刷新 - Ember JS
// Start Ember application
App = Ember.Application.create({
LOG_TRANSITIONS: true
});
// Router paths
App.Router.map(function() {
// Homepage
this.resource('index', { path: '/' });
// Book view
this.resource('book', { path: '/book/:id/:version' });
});
// Homepage route
App.IndexRoute = Ember.Route.extend({
model: function() {
// Get all the books
return Ember.$.getJSON('/books');
}
});
// Single book view
App.BookRoute = Ember.Route.extend({
model: function (params) {
// Get a single book
return Ember.$.getJSON('/book?id=' + params.id + '&version=' + params.version);
}
});
當我通過從主頁點擊/#/ book/1/1,頁面是空白的。當我剛剛刷新頁面時,它會加載數據並且一切正常。
這是爲什麼?當用戶從主頁上點擊時,我可以做些什麼來使其工作?
如果您已經擁有了索引路線中的所有書籍,爲什麼您要爲BookRoute中的每本書做出請求?順便說一句,看看這裏http://emberjs.com/guides/routing/specifying-a-routes-model/。有一個文本:注意:具有動態段的路由只有在通過URL輸入時纔會調用其模型鉤子。如果路線是通過轉換(例如,當使用鏈接到Handlebars助手時),那麼已經提供了一個模型上下文並且不執行該鉤子。沒有動態段的路線將始終執行模型掛鉤。 – fanta
我不知道這是你的情況,你是否使用鏈接來過渡到書?如果是這樣,那就是頁面爲空的原因,模型鉤子ID沒有執行,因爲你已經有了模型。當你刷新頁面時,它會被執行,因爲在那種情況下,你直接輸入了URL。 – fanta
我正在使用link-to。如果我要在主頁上加載該書的所有細節,JSON將會非常大。主頁只是一本書的列表,然後當用戶點擊一本書時,我想加載該書的特定詳細信息。 – Amir