如何在ember.js中访问路径文件中的:id参数?

时间:2015-01-22 12:06:39

标签: javascript ember.js url-routing ember-cli

我在Ember app中有这些路线:

Router.map(function() {
  this.resource('posts', function () {
    this.route('show',  {path: '/:id'});
  });
});

让我们关注网址为show的{​​{1}}路线 它使用/posts/:id,如下所示:

PostsShowController

路径文件import Ember from "ember"; export default Ember.ObjectController.extend({}); 如下所示:

/routes/posts/show.js

在第五行,其中显示import Ember from 'ember'; var PostsIndexRoute = Ember.Route.extend({ model: function() { return posts[variable]; } }); var posts = ... 我希望将posts[variable]替换为在网址中传递的 variable 参数。所以如果我输入localhost:4200 / posts / 3我希望它是3.我该怎么做?

1 个答案:

答案 0 :(得分:1)

确保通过路线思考。 " /帖"意味着你在" / post /:id"" / post /:id"意味着你要按给定的ID查看帖子。所以你可能想要这样的东西:

this.resource('posts');
this.resource('post', { path: 'post/:id' });

这会给你两条路线:

  • /讯息
  • /后/:ID

然后,您可以按如下方式提供相应的Ember Route对象:

App.PostsRoute = Ember.Route.extend({
  model: function () {
    // return all posts
  }
});

App.PostRoute = Ember.Route.extend({
  model: function (params) {
    // params.id will be the :id value from the route
    // return post by id
  }
});