URL にアクセスすると/posts
すべての投稿が一覧表示されるブログ サイトがあります。次に、リンクをクリックすると/posts/:post_id
、その投稿の詳細が表示されます。ただし、リンクをクリックすると、が正しくlinkTo
渡されていないようです。:post_id
これが私のコードです:
ルーター:
App.Router.map(function() {
this.resource("posts", function() {
this.resource("post", { path: "/:post_id" }, function() {
//other routes
});
});
this.route("posts.index", { path: "/" });//Links root url to posts index template
});
ルート:
/****** Posts ******/
App.PostsRoute = Ember.Route.extend({
});
App.PostsIndexRoute = Ember.Route.extend({
model: function() {
return App.Post.find();
}
});
/****** Post *******/
App.PostRoute = Ember.Route.extend({
});
App.PostIndexRoute = Ember.Route.extend({
});
コントローラー:
/****** Posts ******/
App.PostsController = Ember.ArrayController.extend({
});
App.PostsIndexController = Ember.ArrayController.extend({
});
/****** Post ******/
App.PostController = Ember.ObjectController.extend({
});
App.PostIndexController = Ember.ObjectController.extend({
});
投稿/インデックス テンプレート:
{{#each post in controller}}
<tr>
<td>{{post.name}}</td>
<td>{{post.title}}</td>
<td>{{post.content}}</td>
<td>{{#linkTo post.index post}}View{{/linkTo}}</td>
</tr>
{{/each}}
をクリックするたび{{linkTo post.index post}}
に、正しい URL に移動し、正しいテンプレート (投稿/インデックス) をレンダリングしますが、何も表示されません。次のように PostIndexRoute にモデルフックを入れてみました:
App.PostIndexRoute = Ember.Route.extend({
model: function(params) {
return App.Post.find(params.post_id);
}
});
しかし、params ={}
データがありません。誰かが私を正しい方向に向けることができますか? 私は何を間違っていますか?