2014-02-21 51 views
0

好吧,所以這讓我瘋狂,我正在製作一個網站的原型。 我只需要在視圖中添加一些json。 我的json是一個數組,有一些嵌套數組。 這將是JSON的一個例子:灰燼,車把和陣列

var facetList = [ 
     { 
      'Alias' : 'WaterSaving', 
      'DisplayName' : 'Vand besparende', 
      'id':47, 
      'Facets' : [ 
      { 
       'DisplayName' : 'false', 
       'FacetId' : 47, 
       'Value' : 'false', 
       'id':0 
      }, 
      { 'DisplayName' : 'true', 
      'FacetId' : 47, 
      'Value' : 'true', 
      'id':1 
     } 
     ] 
    }, 
    { 
     'Alias' : 'Type', 
     'DisplayName' : 'Type', 
     'id':48, 
     'Facets' : [ 
     { 
      'DisplayName' : 'håndvask', 
      'FacetId' : 48, 
      'Value' : 'håndvask', 
      'id':2 
     }, 
     { 
      'DisplayName' : 'køkken', 
      'FacetId' : 48, 
      'Value' : 'køkken', 
      'id':3 
     } 
     ] 
    } 
    ]; 

爲此,我使用ArrayController像這樣:

App.FacetController = Ember.ArrayController.create(); 
App.FacetController.set('content', facetList); 

當我嘗試呈現此視圖像這樣:

 <div> 
    <h2>Filtre</h2> 
    {{#each App.FacetController}} 
    {{DisplayName}} {{input type="checkbox" name="isAdmin" checked=valgt}} 
    <br/> 
    {{Facets.[1].DisplayName}} 
    {{this.Facets.[1].DisplayName}} 
    {{Facets}} 
    {{#each Facets}} 
     {{#each this}} 
     this 
     {{/each}} 
    {{/each}} 
    {{/each}} 
    </div> 

我得到這個輸出:

Vand besparende 
true true [object Object],[object Object] Type 
køkken køkken [object Object],[object Object] 

非常清楚,句柄看到一個數組 - 但它拒絕循環這個數組! 我在做什麼錯?

我用灰燼版本1.4.0

回答

2

這裏是一個工作jsbin:http://emberjs.jsbin.com/xixonozu/1/

沒有與您的示例代碼幾個問題:

App.FacetController = Ember.ArrayController.create(); 
App.FacetController.set('content', facetList); 

灰燼預計在這些位置查找的對象成爲構造函數,而不是實例,所以您需要使用Ember.ArrayController.extend();,這當然意味着您無法在其上調用set。相反,您應該允許Ember爲您創建這些對象的實例,並在路線的model鉤子中提供模型數據。

同樣,在您的模板中,您不應該像訪問全局對象那樣訪問全局對象,也可以使用全局查找(大寫字母)和幫助器(如{{each}})。

一般來說,我會建議給Ember.js guides一個從頭到尾的閱讀,只是想了解一般的應用程序結構和風格。