如何使用两个同名的应用程序?

时间:2015-03-14 16:45:00

标签: angularjs name-conflict

我需要在我的页面上使用具有相同名称的AngularJS应用程序创建两个范围。原因是我使用的Wordpress主题不允许添加到body标签。并且我无法使用角度属性创建高级div,因为主题会自动添加结束div。

两个角度范围都完全相同。

这就是我想要的:

<!-- lots of theme code here -->
 <div ng-app="app" ng-controller="ctrl">some angular variables and HTML</div>

<!-- lots of theme code here -->
 <div ng-app="app" ng-controller="ctrl">some angular variables and HTML</div>

当我执行上述操作时,第一个角度范围执行正常但第二个角度范围似乎被忽略。我想是因为在同一页面上有两个同名的ng-apps是不允许的。

在我的JS文件中,我只有&#34; app&#34;和&#34; ctrl&#34;。还有其他方法可以做到这一点吗?

我可以在js文件中创建两个角度应用程序,但后来我必须复制我的所有代码......对吗?

使用javascript将上述两个指令添加到body标签可能是最简单/最简单的吗?

2 个答案:

答案 0 :(得分:1)

您应该使用angular.bootsrap在您的网页上初始化您的应用, 请在angular.element ready事件中添加您的代码,以便在DOM准备就绪时初始化您的角度应用。

angular.element(document).ready(function() {
  //document inside angular.bootstrap could be replaced by any element selector,
  //wherever you want to inject your angular app
  angular.bootstrap(document, ['myApp']);
});

我相信使用上述方法会更好,谢谢。

答案 1 :(得分:0)

简单的解决方案:只需使用javascript动态地将ng-app和ng-controller添加到body标签。该脚本必须位于页面底部,以便DOM可以首先完全加载。