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

How do I access the :id parameter in the route file in ember.js?

本文关键字:文件 参数 id 路由 访问 ember js      更新时间:2023-09-26

我的 Ember 应用程序中有这些路由:

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

让我们专注于带有 url /posts/:idshow路由它使用如下所示的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]我想用 url 中传递的 :id 参数替换variable。因此,如果我输入 localhost:4200/posts/3,我希望它是 3。我该怎么做?

确保你仔细考虑你的路线。"/posts"表示您正在查看所有帖子,而"/post/:id"表示您正在查看给定ID的帖子。所以你可能想要这样的东西:

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

这将为您提供两条路线:

  • /职位
  • /
  • post/:id

然后,您可以提供相应的 Ember 路由对象,如下所示:

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
  }
});