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



我在路由中定义了一个散列。我想访问这个散列并在我的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

如果您需要更复杂的功能,请创建一个组件,将散列传递到其中,并以与我概述的助手类似的方式处理它。

最新更新