5

パスを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=folderpath=folder/README

:pathスラッシュがあるかどうかに関係なく、サブルートをURLの末尾と一致させるにはどうすればよいですか?

4

2 に答える 2

3

この機能は、Ember.js リポジトリのマスターブランチにコミットされています。ビルドには含まれていないため、新しいバージョンがリリースされるまでは、Ember.js を自分でビルドするか、ビルド済みのバージョンを見つける必要があります。1.0.0-pre2

基本的な使い方

ダイナミック セグメントの前にコロンを付ける代わりに:、アスタリスクを使用します*。ルートは次のような構文を使用します。

Ember.Route.extend({
  route: '/:repo_id/files/*path'
});

パス セグメントは、通常の動的プロパティであるかのように使用できます。ただし、files/スラッシュを含め、URL の後にあるものはすべて含まれます。

于 2012-12-19T14:56:46.960 に答える
1

Ember.js Github Tracker には未解決の問題があります: https://github.com/emberjs/ember.js/issues/1451

于 2012-10-16T14:26:14.490 に答える