我的英语的Apollogies,
我有这样的路由器:
App.Router.map ()->
@resource 'movies' , ->
@route 'free'
@route 'featured'
@route 'index'
@route 'movie', path: '/:movie'
@resource 'seasons' , ->
@route 'free'
@resource 'featured', ->
@route 'season', path : '/:season'
@route 'index'
@route 'season', path: '/:season'
在这种特殊情况下:
@resource 'seasons' , ->
@route 'free'
@resource 'featured', ->
@route 'season', path : '/:season'
如果做a:
{{#linkTo "seasons.featured.season" 25}} ....
Ember引发了一个例外。我必须这样做:
{{#linkTo "featured.season" 25}} .... // this way is ok
与模板相同。我必须走上正轨:
/templates/featured/seasson.hbs // ok
而不是我认为应该是正确的道路:
/templates/seasons/featured/seasson.hbs // worng
这是正确的方法吗?
提前致谢
答案 0 :(得分:1)
是的,这是正确的方法。看看这个part of the router guide。如果您嵌套resources
,路线的路径是"重置"。
以下示例来自指南:
App.Router.map(function() {
this.resource('post', { path: '/post/:post_id' }, function() {
this.route('edit');
this.resource('comments', function() {
this.route('new');
});
});
});
您可以链接新路线以获取以下评论:
{{#linkTo "comments.new"}}
因此,模板必须命名为comments/new
。
但如果您愿意,可以保留命名空间,这也在指南中说明:
App.Router.map(function() {
this.resource('foo', function() {
this.resource('foo.bar', { path: '/bar' }, function() {
this.route('baz'); // This will be foo.bar.baz
});
});
});
现在baz的完整路线名称为foo.bar.baz
,模板必须放在foo/bar/baz
。