次の例では、新しいRouter v2 APIを使用して、emberアプリケーションは1つの例外を除いて期待どおりに動作します。動的に作成されたリンクにカーソルを合わせると、登録済みの#linkTo Handlebarsヘルパーを使用して、ユーザーのIDがURLでnullになります。
リンクをクリックすると適切な状態に移行しますが、URLは「null」のままです。
何が得られますか?私が見逃している簡単な慣習はありますか?
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>