2013-09-27 53 views
1

我有一個較大的JSON文件,我想在應用程序啓動時處理成不同類型的模型記錄。我使用jQuery通過AJAX調用加載記錄。應用程序啓動時添加模型記錄

我假設我想在應用程序上使用'ready'事件處理程序。我不確定如何在應用程序的這個早期階段獲得對商店的參考。下面的代碼將無法獲得商店。

var App = Ember.Application.create({ 
    ready: function() { 
     console.log('ready going'); 
     var store = this.Store(); // DOESN'T WORK 
     Ember.$.getJSON('js/static/bigguy.json').then(function(bg) { 
       ...process data... 
     }); 
    } 
}); 

我已經做了上述工作,如果我把處理代碼放入路由器並通過承諾加載它。我試圖創建自己的ApplicationRoute,可能會在應用程序加載時立即觸發,但不知道如果針對其他散列路徑「#/ something」的URL會觸發該URL。

回答

0

似乎在ApplicationRoute.model中這樣做是最好的方法。你可以獲得的是應用程序將在啓動時處於加載狀態,這正是我想要的。只有模型的承諾返回後,應用才能轉換到下一個路由。這允許您跳轉到應用程序的任何散列路徑,並確保數據將被加載。

App.ApplicationRoute = Ember.Route.create({ 
    model: function() { 
     var store = this.Store(); 
     return Ember.$.getJSON('js/static/bigguy.json').then(function(bg) { 
      ...process data... 
     }); 
    } 
}); 
+0

使用ApplciationRoute推送記錄以在啓動時存儲:http://emberjs.com/guides/models/pushing-records-into-the-store/ –

相關問題