Ember JS应用程序显示空白页面

时间:2014-03-22 21:51:15

标签: ember.js

我正在基于网站上的Beginner's Guide松散地创建一个简单的Ember JS应用程序。但是,我似乎无法在页面上呈现任何内容。当我检查Ember Inspector时,我的路线都存在,我没有看到任何错误,所以不能立即清楚问题所在。

这是html文件:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Coin</title>
  <link rel="stylesheet" href="css/normalize.css">
  <link rel="stylesheet" href="css/style.css">
  <link rel="stylesheet" href="css/bootstrap.min.css">
</head>
<body>
  <script type="text/x-handlebars">
    <div>Hello</div>
    {{outlet}}
  </script>
  <script type="text/x-handlebars" id="accounts">
    <div>accounts</div>
    <div class="col-md-2">
        <ul class="nav nav-pills nav-stacked">
            {{#each}}
            <li>account link {{#link-to 'account' this}}{{name}}{{/link-to}}</li>
            {{/each}}
        </ul>
    </div>

    <div class="col-md-10">
        {{outlet}}
    </div>
  </script>

  <script type="text/x-handlebars" id="account">
    <ul>
      {{#each}}
      <li>{{comment}}</li>
      {{/each}}
    </ul>
  </script>

  <script src="js/libs/jquery-1.10.2.js"></script>
  <script src="js/libs/handlebars-1.1.2.js"></script>
  <script src="js/libs/ember-1.4.0.js"></script>
  <script src="js/app.js"></script>
  <script src="dist/js/bs-core.min.js"></script>
  <script src="dist/js/bs-nav.min.js"></script>
  <!-- to activate the test runner, add the "?test" query string parameter -->
  <script src="tests/runner.js"></script>
</body>
</html>

这是我的app.js文件:

App = Ember.Application.create();

App.Router.map(function() {
    this.resource('accounts');
    this.resource('transactions', { path: ':accounts_id' });
})

App.AccountsRoute = Ember.Route.extend({
    model: function() {
        return accounts;
    }
})

App.TransactionsRoute = Ember.Route.extend({
    model: function() {
        return transactions;
    }
})





var accounts = [{
    id: 1,
    name: 'Account 1',
}, {
    id: 2,
    name: 'Account 2'
}];

var transactions = [{
    id: 1,
    id_account: 1,
    amount: 12,
    comment: 'blah'
}, {
    id: 2,
    id_account: 1,
    amount: 5,
    comment: 'blah2'
}, {
    id: 3,
    id_account: 2,
    amount: 98,
    comment: 'blah4'
}];

在页面上正确呈现的一件事是应用程序模板中的“Hello”。当我导航到#/ accounts或任何其他定义的路线时,{{outlet}}中没有显示任何内容。事实上,当我在网址中添加#/ accounts时,即使我的“Hello”消失了。

我有什么明显的东西可以忽略吗?我是Ember的新手,所以我确定这是愚蠢的,但我无法从文档中找出问题所在。

编辑:我正在使用直接从网站链接的Ember v1.4.0,并在Ember Inspector中选中了“允许访问文件URL”。

1 个答案:

答案 0 :(得分:1)

我制作了您在此ember jsbin

中开始的工作版本

我注意到你做错了是尝试使用此{{#link-to 'account' this}}链接到不存在的路线。您没有定义我想要接收参数的帐户路线。但是我想你想在迭代中发送当前项的id。因此,您可以将其更改为{{#link-to 'account' id}}

因此,有两个重要的修改可以添加路由并修复link-to帮助程序的参数。然后我假设您也想显示交易并修复它。

希望这有帮助。