将多个ng-apps组合到一个应用程序中

时间:2016-11-15 20:20:31

标签: javascript angularjs angular-ui-router

问题:我们在同一页面上运行多个角度应用。一个用于页脚。一个用于标题,一个用于登录模式。每个人都有自己的状态和每个用户ui.router。

挑战:我们希望以最少侵入性的方式将它们组合成一个ng-app。这里的主要问题是,当我们尝试将它们组合时,切换状态会导致某些区域消失,

我们的第一个"天真"方法是做类似的事情:

angular
  .module('bigApp', ['smallApp1', 'smallApp2'])
  .run(['$state', function($state) {
    console.log("Big app running!");
  }]);

这似乎导致选择性渲染。例如。当我点击链接转到smallApp1中定义的状态时,smallApp2的视图会消失。

我是否认为必须创建一个新的共同父国?父状态需要有子视图来呈现需要保留的小应用程序吗?当状态发生变化时不会消失?

1 个答案:

答案 0 :(得分:0)

您需要绘制新的状态和组件。您可以使用分层状态,例如

"menu" state - contains navigation, status  bar (always present)
"menu.home" - contains the central home page
"menu.people" - contains your list of people
"menu.people.individual" - contains details of an individual (a sub view of "menu.people") 

绘制完结构后,您可以确定哪些部分将使用ui-view,哪些部分将使用组件。每个组件都可以在一个应用程序下拥有自己的控制器。