AngularJS中的嵌套模块

奥涅兹

我有两个不同的AngularJs模块:一个widgetContainer和一个小部件。

小部件可以显示为独立的应用程序,也可以包含在widgetContainer中。一个widgetContainer包含0-N个小部件。

如果我尝试将小部件模块升压到widgetContainer中,则角度抛出以下错误:

错误:[ng:btstrpd]应用已使用此元素'<div id =“ childApp”>'自举了http://errors.angularjs.org/1.5.8/ng/btstrpd?p0=%26lt%3Bdiv%20id% 3D%22childApp%22%26gt%3B

我已经在这个小问题中重现了这个错误

<div id="parentApp">
<div ng-controller="MainParentCtrl">
  Hello {{name}} !
  <div id="childApp">
    <div ng-controller="MainChildCtrl">
      Hello {{childName}} !
    </div>
  </div>
</div>

编辑:

使用依赖注入可以有效地解决问题。

现在,我需要从指令加载小部件。

parentApp.directive('widget', [function() {
  return {
    restrict: 'E',
    link: function($scope, $element, $attr) {

      var div = document.createElement('div');
      div.setAttribute("ng-controller", "MainChildCtrl");
      div.innerHTML = 'Hello {{childName}} !';
      $element.append(angular.element(div));

    }
  };
}]);

div已创建,但childApp模块未装入其中。我更新了我的矮人

永赛A

为了达到预期的效果,请在下面使用

angular.element(document).ready(function() {
  angular.bootstrap(document.getElementById('parentApp'), ['parentApp','childApp']);

});

http://plnkr.co/edit/4oGw5ROo80OCtURYMVa3?p=preview

不管元素上使用控制器如何,手动引导的语法如下所示

angular.bootstrap(element, [modules]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章