如何将JSON数据导入到ember / handlebars模板中?

时间:2013-08-08 17:53:43

标签: javascript ember.js

我是ember的新手...所有与JSON相关的东西我都能找到使用ember-data,我不打算使用它(我们有一个xml而不是REST api)。

我现在要做的就是将我的sideNav.json数据加载到我的应用程序模板中。

sideNav.json:

[
    {
        "label": "Overview",
        "pageClass": "nav-home",
        "iconClass": "icon-overview",
        "link": "index.html"
    }, {
        "label": "Total Energy",
        "pageClass": "nav-totalEnergy",
        "iconClass": "icon-meter",
        "link": "totalEnergy.html"
    }
]

模板:

<script type="text/x-handlebars" data-template-name="application">
    <div id="sideNav">  
        <ul>
            {{#each model}}
            <li {{bindAttr href="link"}}>
                <a {{bindAttr class="pageClass"}}>
                    <i {{bindAttr class="iconClass"}}></i><p>{{label}}</p>
                </a>
            </li>
            {{/each}}
        </ul>
    </div>
</script>

目前,我正在做这样的工作:

App.ApplicationRoute = Ember.Route.extend({
  model: function() {
    return [
      {
        label: "Overview",
        pageClass: "nav-home",
        iconClass: "icon-overview",
        link: "index.html"
      },
      {
        label: "Total Energy",
        pageClass: "nav-totalEnergy",
        iconClass: "icon-meter",
        link: "totalEnergy.html"
      }
    ];
  }
});

但是我想将这些数据保存在单独的JSON文件中,我只是想使用$ .ajax()来获取数据,但我不认为这是最好的方法。

由于

1 个答案:

答案 0 :(得分:0)

它只是静态数据,还是您打算调用服务器?如果那个静态json文件是你无法修改的东西,请使用Ember。$。ajax()。如果您可以修改json文件,只需将其更改为js文件,将其包含在页面中,并使其成为这样的......

 App.SideNavFixture = [
   {
    "label": "Overview",
    "pageClass": "nav-home",
    "iconClass": "icon-overview",
    "link": "index.html"
   }, {
    "label": "Total Energy",
    "pageClass": "nav-totalEnergy",
    "iconClass": "icon-meter",
    "link": "totalEnergy.html"
   }
 ];

 App.ApplicationRoute = Ember.Route.extend({
   model: function() {
     return App.SideNavFixture;
   }
 });