有没有办法在Ember中为所有生成的路由指定默认值?例如,我需要检查每个路由以查看用户是否在执行任何操作之前已登录。是的,我可以创建一个身份验证路由,然后从它扩展每个路由,但是。然后我到处都有这些空路线,因为我需要扩展除默认值以外的其他东西。
有没有其他方法可以做这样的事情?最好不要求我为应用程序中的每个视图创建一个Route。想法?
修改
为了进一步澄清我不想要的东西,这是我的路线文件之一:
import AuthenticatedRoute from '../routes/authenticated';
export default AuthenticatedRoute.extend();
答案 0 :(得分:0)
您可以创建一个作为经过身份验证的路由的父资源,然后将所有应在其下面进行身份验证的路由放入其中。除非您通过身份验证路线,否则您无法前往子路线。老实说,即使你当前的结构,AuthenticatedRoute
下面的所有子路线都会被认为是经过验证的,因为它们必须经过那条路线才能到达那里。 (我更喜欢路由器中的显式身份验证路由)
App.Router.map(function() {
this.resource('auth', {path:''}, function(){
this.resource('foo');
this.resource('bar', function(){
this.route('baz')
});
});
this.route('login');
});
这是一个类似的问题,其中包含我可以获得的模式: