在 Ember 1.0.0 pre 中路由时

When routing in Ember 1.0.0 pre

本文关键字:路由 pre Ember      更新时间:2023-09-26

我正在尝试在我的余烬应用程序中创建路由,如下所示:

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 的源代码时,我永远不会设置位置的"哈希"属性 - 应该在浏览器触发某种哈希事件时设置。

是否走在正确的轨道上,我该如何解决这个问题?​

只有叶路由是可路由的,当输入"/"时,路由器不知道他必须去哪里。我建议您定义一个索引路由,它只会重定向到叶路由。例如:

    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'
            })
        })
    })