Ember - 在视图中输出哈希值但没有显示任何内容

时间:2015-11-02 19:09:00

标签: ember.js handlebars.js

我在路线中定义了一个哈希值。我想访问此哈希并在我的Ember视图中输出值。

路线/服务signups.js

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

在我看来( service-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}}

1 个答案:

答案 0 :(得分:1)

使用each-in的新2.0辅助工具。

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

请参阅文档here

另外,从文档中 - 请注意,此帮助程序未绑定。向项目添加新属性不会导致重新呈现,但model.set('defaultServiceSignups', someHash)将会。

Pre 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

如果您需要更复杂的功能,请创建一个组件,将哈希值传递给它,并以与我所概述的帮助程序类似的方式处理它。