我正在基于网站上的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”。
答案 0 :(得分:1)
我制作了您在此ember jsbin
中开始的工作版本我注意到你做错了是尝试使用此{{#link-to 'account' this}}
链接到不存在的路线。您没有定义我想要接收参数的帐户路线。但是我想你想在迭代中发送当前项的id。因此,您可以将其更改为{{#link-to 'account' id}}
。
因此,有两个重要的修改可以添加路由并修复link-to
帮助程序的参数。然后我假设您也想显示交易并修复它。
希望这有帮助。