3

我已经在 ember.js 中实现了关注。代码工作到一定程度。

当我在根 url 即“/”处输入应用程序时,该 URL 不会更改,它应该转到 tasks.index 并通过显示 #/tasks 来反映 url 中的更改。

但是当我转到“#/tasks”并显示消息“您好,来自索引视图”时,它的行为正确。

我正在使用 Google Chrome 版本 19 和 ember.js edge。

很感谢任何形式的帮助。

App = Em.Application.create({});

App.IndexView = Em.View.extend({
    template: Em.Handlebars.compile(
        'hello world from index'
    )
});

App.ShowView = Em.View.extend({
    template: Em.Handlebars.compile(
        'hello world from show'
    )
});

App.Router = Ember.Router.extend({
    location: 'hash',
    rootElement: "#my-app",
    enableLogging: true,

    root: Ember.State.extend({
        index: Ember.State.extend({
            route: '/',
            redirectsTo: 'tasks.index'
        }),

        tasks: Ember.State.extend({
            route: '/tasks',

            index: Ember.ViewState.extend({
                route: '/',
                view: App.IndexView
            }),

            show: Ember.ViewState.extend({
                route: '/show',
                view: App.ShowView
            })
        })
    })
});

App.initialize();
4

1 回答 1

1

看到这个jsFiddle:

代码-> http://jsfiddle.net/ud3323/WLcRQ/

调试-> http://jsfiddle.net/ud3323/WLcRQ/show/

您需要做的就是更改redirectsTo: 'tasks.index'redirectsTo: 'tasks'.

You don't need to specify the destination state's starting route when using redirectsTo when the destination state has a starting route defined (as you've done).

于 2012-05-30T23:49:40.067 回答