我需要将路径与 URL 相匹配。路径必须是给定模式之后 URL 的末尾,但我做不到。
Ember.js 总是以与下一个斜杠的匹配结束。
var router = Ember.Router.extend({
location: 'history',
enableLogging: true,
root: Ember.Route.extend({
index: Ember.Route.extend({
route: '/'
repo: Ember.Route.extend({
route: '/:repo_id',
index: Ember.Route.extend({
route: '/'
}),
files: Ember.Route.extend({
route: '/files',
index: Ember.Route.extend({
route: '/'
}),
sub: Ember.Route.extend({
route: '/:path'
})
})
})
})
})
});
使用此路由器:
-
/myrepo/files/
将匹配root.repo.files.index
-
/myrepo/files/README
将匹配root.repo.files.sub
with path=README
-
/myrepo/files/folder/README
将匹配root.repo.files.sub
并将我重新路由到/myrepo/files/folder/
因为path=folder
代替path=folder/README
如何让子路由与 URL 的末尾匹配:path
即使是否有斜线?
该功能已坚定的 https://github.com/emberjs/ember.js/commit/12f65b76014430a828af70accd0d91f5666565a9到 Ember.js 存储库的master https://github.com/emberjs/ember.js分支。它不在1.0.0-pre2
构建,因此在发布新版本之前,您将需要自己构建 Ember.js https://github.com/emberjs/ember.js#building-emberjs或者找到一个预构建的版本。
基本用法
而不是在动态段前面加上冒号:
,使用星号*
。您的路线将使用类似于以下的语法:
Ember.Route.extend({
route: '/:repo_id/files/*path'
});
路径段将可用,就像它是正常的动态属性一样。但是,它将包括之后的任何内容files/
在 URL 中,包括斜杠。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)