1

次のようなものを使用して、ember アプリでルーティングを作成しようとしています。

app= Ember.Application.create({
        ApplicationController: Ember.ObjectController.extend(),
        ApplicationView: Ember.View.extend(),

        Router: Ember.Router.extend({
            root: Ember.Route.extend({
                route: '/',

                aRoute: Ember.Route.extend({
                    route: '/routeA'
                }),
                bRoute: Ember.Route.extend({
                    route: '/routeB'
                })
            })
        })
});

app.initialize();

しかし、ページを開くと、次のエラーが表示されます。

Uncaught Error: assertion failed: Could not find state for path  

ember のソース コードを少し掘り下げてみると、location の "hash" プロパティが設定されていません。ブラウザーによって何らかのハッシュ イベントがトリガーされたときに設定する必要があります。

私は正しい道を進んでいますか?この問題を解決するにはどうすればよいですか? </p>

4

1 に答える 1

3

リーフ ルートのみがルーティング可能です。「/」を入力すると、ルーターはどこに行かなければならないかわかりません。リーフ ルートにのみリダイレクトするインデックス ルートを定義することをお勧めします。例えば:

    Router: Ember.Router.extend({
        root: Ember.Route.extend({
            index: Ember.Route.extend({
                route: '/',
                redirectsTo: 'aRoute'
            }),

            aRoute: Ember.Route.extend({
                route: '/routeA'
            }),
            bRoute: Ember.Route.extend({
                route: '/routeB'
            })
        })
    })
于 2012-08-14T12:04:42.887 に答える