ember.js中的路由器或状态管理器或两者

时间:2013-01-30 10:01:35

标签: ember.js

目前的ember文档几乎没有提到州。这是否意味着它现在不应该使用,并且只应使用构建在顶部的路由器?

关于应用程序状态如何进展,我有点不清楚。 我想到的问题的一个例子是从登录屏幕进入两个或三个位置之一,这取决于登录成功和当时登录用户的管理员权限

1 个答案:

答案 0 :(得分:3)

幸好没有StateManager了,我们只是使用路由器来做所有事情。例如,您可以使用以下命令从任何控制器更改为您选择的路线:

this.transitionTo('login.invalid');

这将带您进入LoginInvalidRouteLoginInvalidControllerLoginInvalidView。因此,如果用户输入了错误的凭据,您可以将它们转发到该路由。

但是,如果用户成功登录,您可以将其带到他们的帐户页面:

this.transitionTo('account.default');

如果他们是管理员,请访问管理员信息中心:

this.transitionTo('account.administrator');

如果您的路由器配置如下所示,则所有这些都可以正常工作:

App.Router.map(function() {
    this.resource('login', function() {
        this.route('index');
        this.route('invalid');
    });
    this.resource('account', function() {
        this.route('default');
        this.route('administrator');
    })
});