Ember.js中的嵌套路由
Nested routes in Ember.js
我有一个ember应用程序,它需要以下视图:
- 一个可以查看您发布的所有评论-
/reviews
- 一个用于查看用户配置文件的
/users/:id
- 一个用于查看其他用户发布的所有评论-
/users/:id/reviews
我正在为第三个而挣扎。
这是我的router.js
this.route('reviews', function() {
this.route('show', { path: "/:id" });
});
this.route('users', function(){
this.route('show', {path: '/:id'}, function () {
this.route("reviews", function(){});
});
});
我的此路线模板位于templates/users/show/reviews/index.hbs
我的路线是routes/users/show/reviews/index.js
但当我访问localhost:4200/users/1/reviews
时,它显示了用户配置文件路径(users/:id
-第二个要点(。就像完全相同的
如何让这个路由使用正确的模板和route.js文件?
您的路线应该是:
this.resource('reviews', function() {
this.route('show', { path: '/:id'})
})
前面的意思是你将有以下路线可用:
/reviews
<-资源评审的默认路线index
/reviews/:id
<-这是路线show
并且应该有以下文件:
路线->app/routes/reviews/show.js
、app/routes/reviews/index.js
控制器->app/controllers/reviews/show.js
、app/controllers/reviews/index.js
模板->app/templates/reviews/show.hbs
、app/templates/reviews/index.hbs
请注意,如果您没有定义任何以前的文件,则默认情况下ember将生成一个
对于用户,应遵循与先前定义相同的逻辑。
this.resource('users', function() {
this.resource('user', { path: '/:id' }, function () {
this.route("reviews");
});
});
翻译之前的用户定义,你将有以下路线。
/users
<-资源用户的默认索引
/users/:id
<-资源用户的默认索引
/users/:id/reviews
<-users
内reviews
的路由
希望能帮助你!
相关文章:
- BatmanJS:深度嵌套路由
- React Router,在params之后嵌套路由
- DefaultRouter组件中的嵌套路由
- react路由器在为url提供路径时忽略嵌套路由
- 如何正确使用带有react路由器的嵌套路由
- 余烬 无法加载双嵌套路由
- 如何从服务器获取嵌套路由 ember 2.3.0 的数据
- 嵌套路由:如何查询 Rails DB 并将值存储在 JavaScript 变量中
- 如何在没有嵌套模板的情况下拥有嵌套路由
- 即使没有嵌套路由,Ember Rails 后退按钮也不会呈现模板
- 如何定义嵌套路由+ember不呈现嵌套路由模板
- 带有嵌套路由的Ember.js模型和setupController挂钩
- Ember js搜索嵌套路由
- 嵌套路由's模板未在EmberJS应用程序中呈现
- React嵌套路由
- 在UI-Router的嵌套路由中,子状态加载父状态templateUrl
- Node.js支持嵌套路由
- 在emberjs中不使用资源出口的嵌套路由
- Emberjs (1.0rc1)嵌套路由,但在父路由时呈现默认的子路由
- 如何使用一个模板进行嵌套路由&angularjs中的控制器