2013-06-26 25 views
1

我需要在我的Ember應用程序中加載隨機項目。要做到這一點,我做了以下幾點:Ember.js不加載

Test.ApplicationRoute = Ember.Route.extend({ 
    events: { 
     randomItem: function() { 
      var route = this; 
      $.getJSON('item/random.json', function(data) { 
       Test.Item.find(data).then(function(item) { 
        route.transitionTo('items.show', item); 
       }); 
     }); 
    }, // ..... etc 

這工作正常,除了一件事:嵌套邊載數據不顯示。當通過{{#linkTo 'items.show' item}}訪問items.show時,該項目的子數據也會加載並可見。但是,當這個randomItem事件被觸發時,只顯示直接的孩子。孩子的孩子不是。

這是爲什麼和/或如何解決這個問題?

+0

我已編輯以反映以下內容:第一次調用此代碼,數據將按預期/期望加載並顯示。任何SUBSEQUENT時間,Ember-data都會加載工件 - 我的Rails服務器會以正確的響應顯示ajax請求。所以看起來只是Ember在數據加載時沒有正確更新視圖。 –

回答

0

事實證明,工件沒有被顯示的原因是我試圖聆聽controller.content.isLoaded以適應視圖以顯示加載圖像,如果內容仍在加載。

出於某種原因,下面說明了loading...文本和圖標永遠航線上的後續用途:

{{#if controller.model.isLoaded}} 
    <div class="row"> 
     </div> 
     {{#each artifact in controller}} 
      {{render "artifacts.show" artifact}} 
     {{else}} 
      <span class="muted">There are no artifacts.</span> 
     {{/each}} 
{{else}} 
    <i class="icon-spin icon-spinner icon-large"></i> Loading... 
{{/if}} 

如果有誰知道這是爲什麼,請讓我知道,這樣我就可以解決這個問題。