在Ember 1.0.0前路由时

时间:2012-08-14 11:54:11

标签: javascript ember.js

我正在尝试使用以下内容在我的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”属性 - 应该在浏览器触发某种哈希事件时设置。

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

1 个答案:

答案 0 :(得分: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'
            })
        })
    })