我在路由中定义了一个散列。我想访问这个散列并在我的Ember视图中输出值。
路线/服务注册.js
model: function(){
return Ember.RSVP.hash({
defaultServiceSignups: {
service_1: false,
service_2: false,
service_3: true
}
});
}
在我看来(服务注册.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}}
使用each-in
辅助对象,从2.0
开始是新的。
{{#each-in model.defaultServiceSignups as |key value| }}
{{key}} Value = {{value}}
{{/each-in}}
请参阅此处的文档
此外,从文档-请注意,这个助手是未绑定的。向项添加新属性不会导致重新应答,但model.set('defaultServiceSignups', someHash)
会。
预Ember 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
如果您需要更复杂的功能,请创建一个组件,将散列传递到其中,并以与我概述的助手类似的方式处理它。