参数 'testController' 不是 : Angular

Argument 'testController' is not a : Angular

我正在处理 Salesforce Visualforce 模板和组件,我嵌入了以下代码,我正在尝试修复错误。

我确实在此处检查了类似的 link:

<div xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" ng-app="vsTestApp">
...
    <c:TestController />
    <c:TestTemplate />
...
</div>

TestController

的代码
<apex:component >
<script>
(function() {
    'use strict';
    angular
    .module('vsTestApp', []);
}());

(function() {
    'use strict';
    angular
    .module('vsTestApp')
    .controller('testController', testController);

    testController.$inject = ['$filter', '$window' ,'$rootScope' ];

    function testController($filter, $window , $rootScope) {
        //Some Logic's Here
        function print() {
            $window.print();
        }
    }
}());
</script>
</apex:component>

TestTemplate的代码

<apex:component >
<script type="text/ng-template" id="vlcCompareModal.html">
    <a clasS="btn btn-default" ng-controller="testController as smallGroup"  ng-click="smallGroup.print()">Print</a>
</script>  
</apex:component>

我收到错误消息说参数 'testController' 不是 Link : https://docs.angularjs.org/error/ng/areq?p0=testController&p1=not%20a

尝试在控制器函数之后定义控制器:

(function() {
    'use strict';

     testController.$inject = ['$filter', '$window' ,'$rootScope'];

     function testController($filter, $window , $rootScope) {
         //Some Logic's Here
         function print() {
            $window.print();
         }
     }

     angular.module('vsTestApp')
         .controller('testController', testController);
}());

这是题外话,但那是一团糟。

你为什么不这样做:

.controller('testcontroller', ['$filter', $window', '$rootscope', function($filter, $windwo, $rootscope) {

}]);

对于查看您的代码的其他人来说,更简洁、更容易阅读和理解。

不应该是<c:testController />而不是<c:TestController />吗?