我正在使用版本4fcdbf2560与新路由器.
在我的应用程序中,用户可以进行身份验证.根据身份验证状态,呈现的模板将不相同.
我通过重新定义以下函数renderTemplate来管理这个ApplicationRoute:
App.ApplicationRoute = Ember.Route.extend({
renderTemplate: function() {
this.render(App.authenticated() ? 'authenticated' : 'unauthenticated');
}
});
Run Code Online (Sandbox Code Playgroud)
我的路由器非常简单:
App.Router.map(function(match) {
match('/').to('index');
match('/sign').to('sign', function(match) {
match('/in').to('signIn');
});
match('/dashboard').to('dashboard');
});
Run Code Online (Sandbox Code Playgroud)
的IndexRoute是就在这里根据认证状态,以将用户重定向:
App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo(App.authenticated() ? 'dashboard' : 'signIn');
}
});
Run Code Online (Sandbox Code Playgroud)
/ApplicationRoute输入,为用户没有通过验证,unauthenticated模板被渲染IndexRoute输入,因为用户没有通过验证,重定向就是由signInsignIn模板被渲染成其父模板- >的unauthenticated模板route.transitionTo('dashboard')称为dashboard模板被渲染成其父模板- >的unauthenticated模板ember.js ×1