我在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.我该怎么做?
答案 0 :(得分:1)
确保通过路线思考。 " /帖"意味着你在" / post /:id"" / post /:id"意味着你要按给定的ID查看帖子。所以你可能想要这样的东西:
this.resource('posts');
this.resource('post', { path: 'post/: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
}
});