ng-controller包含在另一个控制器潜在范围问题内

时间:2018-12-18 16:52:24

标签: javascript html angularjs angularjs-scope

我正在使用node和angularjs。我在ejs中有一个类似于页面的框架,该框架传递了内容以动态加载到包含中。

<div ng-app="thisApp">
  <div ng-controller='MainCtrl'>
     {{ firstMessage }}
     <div id='contentFromNode' ng-include='<%= pageContent %>'></div>
  </div>
</div>
<script>
    var thisApp = angular.module('thisApp', []);
    thisApp.controller('MainCtrl', [ '$scope', function($scope) {
         $scope.firstMessage = "Main Controller Working Fine";
    }])
</script>

,然后传递的内容可能只是一个包含以下内容的html页面:

<div ng-controller='NestedCtrl' id='content-type-container'>
    {{ nestedMessage }}
</div>
<script>
     thisApp.controller('NestedCtrl', [function(){
         var nested = this;
         nested.nestedMessage = "Nested Won't Work";
     }])
</script>

因此,我尝试在NestCtrl中使用$ scope而不是引用它,而是尝试将script标记上下移动(理想情况下还是最终将其分隔开)。我曾尝试给控制器起别名,但是我遇到的问题是控制器本身的注册,因为我收到了一个很大的Error: [$controller:ctrlreg]错误。页面正在加载内容吗?有什么想法我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

似乎JQlite不支持此功能。您必须包括jquery或延迟加载脚本。请参阅

AngularJS: How to make angular load script inside ng-include?