1

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 ={} データがありません。誰かが私を正しい方向に向けることができますか? 私は何を間違っていますか?

4

1 に答える 1