使用ember

时间:2017-03-08 19:21:40

标签: json ember.js

这就是我在模板中获取单个JSON值的方法。 我的申请路线:

import Ember from 'ember';
export default Ember.Route.extend({
  model() {
    return {
      url: "myurl"
    };
  }, setupController(controller, model) {
    controller.set("URL", model.url);
  }
});

application.hbs:

<h1>{{URL}}</h1>
{{outlet}}

这很好用。我现在要做的是从这种JSON对象中获取值到我的模板中:

{
  "employee": [{
    "id": "1001",
    "name": "Employee1",
    "address": {
      "Street": "25 West Street",
      "city": "City1",
      "state": "State1",
      "Country": "US"
    }
  }]
}
  • 我应该在我的应用程序路径中使用什么代码来设置 控制器?

  • 如何检索我的每个键的值 JSON对象进入我的模板?

  • 有没有办法不仅获取 JSON对象的值,还有我的模板中的键?如果 那怎么样?

2 个答案:

答案 0 :(得分:0)

您甚至不需要设置控制器。您可以直接使用从model挂钩返回的内容。请查看以下twiddle。正如您所看到的,我返回了您在model路由的index.js挂钩中定义的数据,并使用model路由模板中的index.hbs进行了访问。正如kumkanillam在他的评论中所建议的那样,我重复了model钩子与each助手的回复。我希望这会有所帮助。

答案 1 :(得分:0)

在此实例中无需使用setupController,因为路径的模型挂钩中返回的任何内容在相应的控制器中都可用作model

可以使用eacheach-in模板助手显示数据。

each-in模板助手可用于循环对象并显示键和值。

例如,要显示嵌套的address属性的键和值:

{{#each model.employee as |employee|}}
  <ul>
    <li>id: {{employee.id}}</li>
    <li>name: {{employee.name}}</li>
    <li>address:
      <ul>
        {{#each-in employee.address as |key value|}}
          <li>{{key}}: {{value}}</li>
        {{/each-in}}
      </ul>
    </li>
  </ul>
{{/each}}

Example on Ember Twiddle