目前的ember文档几乎没有提到州。这是否意味着它现在不应该使用,并且只应使用构建在顶部的路由器?
关于应用程序状态如何进展,我有点不清楚。 我想到的问题的一个例子是从登录屏幕进入两个或三个位置之一,这取决于登录成功和当时登录用户的管理员权限
答案 0 :(得分:3)
幸好没有StateManager
了,我们只是使用路由器来做所有事情。例如,您可以使用以下命令从任何控制器更改为您选择的路线:
this.transitionTo('login.invalid');
这将带您进入LoginInvalidRoute
,LoginInvalidController
和LoginInvalidView
。因此,如果用户输入了错误的凭据,您可以将它们转发到该路由。
但是,如果用户成功登录,您可以将其带到他们的帐户页面:
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');
})
});