使用UI路由器的动态嵌套组件视图

时间:2016-04-12 09:49:24

标签: angularjs angular-ui-router

我有一个已经使用UI路由器的Angular应用程序。它目前使用嵌套视图,因为大多数人使用点符号,即parent.childState

但是,现在显而易见的是,此应用程序的某些部分需要在其他地方重用,我们可以调用此Module A此模块是选项卡式的,并且当前具有与每个选项卡关联的状态。目前,与大多数UI路由器应用程序一样,路由是在应用程序配置阶段设置的。

使用这个新组件Id来注册自己的路由,并且这些路由是它们所在的父视图的子路由。

这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

模块A 中声明提供程序,该提供程序将能够注册要插入模块的应用程序的所有组件。其中一个参数将是obvisouly状态前缀。当您调用提供程序的函数时,或者当您实例化与提供程序匹配的服务($ get)时,此提供程序将在内部调用$ stateProvider。

如果选择$ get函数,则需要添加angular.run()以强制实现$ get的服务实例化。否则,$ get将在稍后调用,并且状态不会被映射,从而导致$ stateNotFound。如果您希望能够在调用$ stateProvider之前重载某些配置,如果您不需要,请在$ get函数中使用$ stateProvider,这非常有用。

所以现在你需要在其他模块中做的就是依赖模块A并使用上述提供者。