我正在设计一个我想用Angular 2编写的应用程序,并且有一些基本问题可能会对整体设计产生重大影响,而我只是难以理解如何做到这一点“正确的角度办法”。我的问题是:
1)动态路由问题:我不喜欢文档现在推荐的方式,它们将所有路由放在根组件的开头。我希望能够在路由配置对象中动态添加/删除,因为初始化了安全组件模块,并且用户被验证可以访问该特定区域/模块。例如:根app.component执行应用程序的初始设置,包括为应用程序的公共部分设置初始公共路由配置。如果用户成功登录,那么我想初始化安全组件,并动态地将一般安全路由添加到路由器。我希望对任何安全的子组件执行相同的操作,以便区域的“父组件”将定义用户有权访问的路由,并在初始化该父组件并且用户已经使用时将相应的路由添加到路由配置中。已验证可以访问该组件。那么,这甚至可能吗?在示例中,路由配置是常量,但我希望我可以通过附加到路由配置的组件来执行此操作。
2)组件级别权限:除了可以访问整个组件之外,用户可以拥有该组件内的权限(例如:用户可以访问设备模块。在设备模块中,他们有访问读取设备列表,但他们不能CUD他们。)。我希望能够将用户的权限存储在数据库中。类型记录(例如:“userID,'equipment.retrieve'”。然后我想创建一个结构指令,接受权限有权访问的属性(即permission =“equipment.retrieve”)并隐藏元素if它评估为false。我的问题是,如果客户端的安全性足以获得权限吗?我对api级别进行了授权检查,如果他们没有权限就应该阻止用户,但我想确保我是这样做是客户端的最佳方式。
我很喜欢我能得到的任何反馈。
答案 0 :(得分:1)
您需要一次加载所有路线,但您可以稍后再次加载它们,如
$('.dropdown-toggle').dropdown();
这样您就可以随时修改routes数组,然后将路由器配置重置为新更新的路由数组。
另见New Angular2 router configuration
https://github.com/angular/angular/issues/11437#issuecomment-245995186提供 RC.6 Plunker