我刚刚开始使用Ember JS和Ember CLI并尝试找出此路由问题。我有一个拥有许多游戏模型的群组模型。通过以下路线,我可以通过组URL显示游戏:
Router.map(function() {
this.resource("groups", function() {
this.route('show', {path: ':group_id/show' });
});
});
这会产生一个格式为:
的网址http://localhost:4200/groups/1/show
假设其中一个组名是"向导"。我希望能够以下面的形式构建一个URL并渲染所有属于" wizards"的游戏:
http://localhost:4200/wizards
任何提示都表示赞赏。
答案 0 :(得分:2)
就像@blessenm在评论中指出的那样,你的路由器将从
改变Router.map(function() {
this.resource("groups", function() {
this.route('show', {path: ':group_id/show' });
});
});
到
Router.map(function() {
this.resource("group", { path: ':group_name'});
});
this.resource()
或this.route()
的第二个参数是可选的。如果您未传递任何内容 - 它将采用与您的路径/资源相同的名称(在您的情况下为组)。如果传入具有path:
键的对象 - 则指定路径的URL是什么,包括动态段。有关此问题,请参阅here了解Ember文档。