Ember - 在视图中输出散列但没有显示任何内容

Ember - outputting a hash in the view but nothing is showing up

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

route/service-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}}

使用 each-in 助手,自 2.0 起新增。

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

查看文档here

此外,来自文档 - 请注意,此助手未绑定。向项目添加新的 属性 不会导致重新呈现,但 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

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