在以下示例中,使用新的 Router v2 API,ember 应用程序的行为与预期相同,但有一个异常。当悬停在动态创建的链接上时,使用已注册的#linkTo Handlebars 助手,用户的 id 在 url 中为空。
单击链接会转换到正确的状态,但 url 仍然是“空”。
是什么赋予了?我缺少一个简单的约定吗?
App = Ember.Application.create({
autoinit: false,
rootElement: "body"
});
App.Store = DS.Store.extend({
revision: 11,
adapter: DS.RESTAdapter.create({})
});
App.User = DS.Model.extend({
email: DS.attr('string'),
username: DS.attr('string')
});
App.ApplicationView = Ember.View.extend({
templateName: 'application'
});
App.ApplicationController = Ember.Controller.extend();
App.HomeController = Ember.Controller.extend({
});
App.UserController = Ember.ObjectController.extend({
});
App.Router.map(function(match) {
match("/").to("home");
match("/users/:user_id").to("user");
});
App.HomeRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('users', App.User.find());
}
});
App.UserRoute = Ember.Route.extend({
setupControllers: function(controller, user) {
controller.set('content', user);
}
});
App.initialize();
<script type="text/x-handlebars" data-template-name="home">
{{#if users.isLoaded}}
{{#each item in users}}
<div class="user">
{{item.email}}
</div>
<div class="user">
{{#linkTo user item}}
{{item.username}}
{{/linkTo}}
</div>
{{/each}}
{{else}}
<p class="loading">Loading Users</p>
{{/if}}
</script>
<script type="text/x-handlebars" data-template-name="user">
<div class="user">
<h3>{{username}}</h3>
<p class="email">{{email}}</p>
</div>
</script>