2015-11-02 58 views
0

我在我的路線中定義了一個散列。我想訪問這個散列並在我的Ember視圖中輸出值。Ember - 在視圖中輸出散列,但沒有任何顯示

路線/服務signups.js

model: function(){ 
    return Ember.RSVP.hash({ 
    defaultServiceSignups: { 
     service_1: false, 
     service_2: false, 
     service_3: true 
    } 
    }); 
} 

在我看來(服務signups.hbs),我想通過我的散列輸出值進行迭代:

{{#each model.defaultServiceSignups }} 
    {{@key}} Value = {{this}} 
{{/each}} 

爲什麼我在視圖中看不到任何東西?這是完全空白的。

編輯1:

我想看看,如果我能輸出什麼,如果哈希是空的,甚至還低於下面的代碼不輸出任何東西:

{{#each model.defaultServiceSignups }} 
    <li>Something is present</li> 
{{else}} 
    <li>Sorry nothing is there</li> 
{{/each}} 
+0

什麼版本的Ember? –

+0

@DanielKmak v1.13.0 – Huy

回答

1

使用each-in幫手,新的截止日期爲2.0

{{#each-in model.defaultServiceSignups as |key value| }} 
    {{key}} Value = {{value}} 
{{/each-in}} 

參見文檔here

此外,從文檔 - 請注意,這個助手是綁定。將新屬性添加到項目不會導致重新渲染,但model.set('defaultServiceSignups', someHash)將會。

預燼2.0 -

你可以創建一個幫助hash-printer與以下機構:

hash = params[0] 
string = '' 
Object.keys(hash).forEach (key) => 
    string += key + ' Value = ' + hash[key] + '<BR>' 
return Ember.String.htmlSafe(string) 

,並稱之爲:

hash-printer model.defaultServiceSignups 

如果您需要更復雜的功能創建一個組件,將散列傳遞給它,並以類似於我所概述的幫助器的方式處理它。

+0

它看起來像'each-in'只在ember 2.0 beta中可用。我試過用它,但幫手不存在於我的項目 – Huy

+0

正確...我會更新 – andorov

+0

感謝您回答我的問題。我希望能有一個更簡單的預打包解決方案。 – Huy