[英]Ember.js Routing: match end of url
我需要將路徑匹配到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
與path=README
匹配 /myrepo/files/folder/README
將匹配root.repo.files.sub
並將我重新路由到/myrepo/files/folder/
因為path=folder
而不是path=folder/README
我怎樣才能讓子路由與URL的末尾匹配:path
即使有斜杠也沒有?
此功能已提交到Ember.js存儲庫的主分支。 它不在1.0.0-pre2
版本中,因此在發布新版本之前,您需要自己構建Ember.js或找到預構建版本。
不要使用冒號前綴動態段:
,使用星號*
。 您的路線將使用類似於以下語法:
Ember.Route.extend({
route: '/:repo_id/files/*path'
});
路徑段將可用,就像它是正常的動態屬性一樣。 但是,它將包含URL中的files/
之后的任何內容,包括斜杠。
Ember.js Github Tracker上有一個未解決的問題: https : //github.com/emberjs/ember.js/issues/1451
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.