javascript - ember linkTo 在路由的模型 Hook 中发送空参数

标签 javascript ember.js ember-router

我有一个博客网站,访问 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({

});

Controller :

/****** 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,呈现正确的模板(post/index),但没有任何显示。我试过像这样在 PostIndexRoute 中放置一个模型 Hook :

App.PostIndexRoute = Ember.Route.extend({
  model: function(params) {
    return App.Post.find(params.post_id);
  }
});

但是 params = {} 里面没有数据。有人能指出我正确的方向吗?我做错了什么?

最佳答案

由于您要传递 post 对象,因此您需要 {{linkTo}} 接受动态 URL 段的路由。在您的示例中,posts.index 不接受参数。

<td>{{#linkTo post post}}View{{/linkTo}}</td>

以下是构建代码以更好地处理路由的方法示例:JSBin example

您还应该查看 Ember.js routing guides作为如何构建路由的示例。

关于javascript - ember linkTo 在路由的模型 Hook 中发送空参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15953330/

相关文章:

javascript - 如何在加载时清除 div 元素

ember.js - ember-cli 应用程序的自定义命令

ember.js - 具有动态分段的资源并在嵌套路由中检索模型

javascript - 使用 Ember js 从非嵌套路由访问路由模型

javascript - 如何在单次提交时使用 ng-model 提交多表单数据

javascript - 有什么办法可以等到 DirectionsService 返回结果吗?

javascript - react : npm command to create a new component?

javascript - 将 chai-as-promised 添加到 Ember 应用程序

javascript - 在 Ember JS 中使用模型作为 View 元素类名

ember.js - 使用 Ember 进行导航的正确方法