AngularJS-在html中从ng include传递控制器时出错

AngularJS-在html中从ng include传递控制器时出错,angularjs,Angularjs,我正在创建一个门户风格的应用程序,它将把域内其他URL的html注入页面的各个部分。让我们称之为小部件。我希望每个小部件都加载一个ng include 小部件应该在返回的html中包含自己的控制器。我需要这些是自包含的,因为每个用户的小部件列表都会发生变化。除了一个全局控制器,我似乎无法让小部件html加载任何东西。我使用的是Grails服务器端,所以忽略${}标记 在我的应用程序中,GreetingController起作用。如果使用GridCtrlr,则会出现以下错误: 我在页面上加载了另

我正在创建一个门户风格的应用程序,它将把域内其他URL的html注入页面的各个部分。让我们称之为小部件。我希望每个小部件都加载一个ng include

小部件应该在返回的html中包含自己的控制器。我需要这些是自包含的,因为每个用户的小部件列表都会发生变化。除了一个全局控制器,我似乎无法让小部件html加载任何东西。我使用的是Grails服务器端,所以忽略${}标记

在我的应用程序中,GreetingController起作用。如果使用GridCtrlr,则会出现以下错误:

我在页面上加载了另一个控制器,工作正常,因此我知道angular运行正常

在这种情况下,我必须使用全局控制器,还是可以在应用程序范围内使用全局控制器

以下是主页上的ng包括:

<div ng-include="'${createLink(controller:"testGrid", action:"index")}'"></div>
以下是ng include返回的html,显示了创建控制器的两种样式:

<script type="text/javascript">

    portalLayoutTool.controller('GridCtrlr', function($scope) {
        $scope.greeting = 'Hola!';
    });

    function GreetingController($scope) {
        $scope.greeting = 'Hola!';
    }


</script>
<div ng-controller="GreetingController">
    <div>
    </div>
</div>
谢谢你能给我的帮助。这一定是一个非常简单的问题,但AngularJS需要一些时间来适应


实际上,这两种控制器风格在plunker中都不起作用:

代码似乎有点奇怪,我不确定我是否理解您试图实现的所有功能,但是

如果你把JS从html文件中拉出来,只保留一个模板,并允许JS在页面加载开始时被实例化,那么你就会有一些东西在工作,不管它是否是你想要的,我不能说,但至少是向前迈出了一步

这是你的叉子:


您的小部件方法似乎被误导了。看看指令,我希望小部件是一段自包含的代码,包括UI和Javascript,而不需要在最初加载页面时声明它的控制器。根据用户的角色,页面可能会为每个用户加载不同的小部件。
<script type="text/javascript">

    portalLayoutTool.controller('GridCtrlr', function($scope) {
        $scope.greeting = 'Hola!';
    });

    function GreetingController($scope) {
        $scope.greeting = 'Hola!';
    }


</script>
<div ng-controller="GreetingController">
    <div>
    </div>
</div>