簡體   English   中英

Ember.js路由:匹配url的結尾

[英]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/READMEroot.repo.files.subpath=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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM