Angularjs控制器无法在连接到模块的自调用函数中定义

时间:2015-10-08 09:03:07

标签: angularjs module controller

我有一个页面如下。控制器无法正常工作。有人可以建议我怎么了?

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" data-ng-app="demoApp">
<head>
    <title>AnjularJs Hello World</title>
</head>
<body data-ng-controller="CustomerController">
    <h2>Customers</h2>
    <div id="Trial">{{name}}</div>
    <script src="Scripts/angular.js"></script>
    <script>
        (function () {
            alert("Inside Self invoking function. This is popping up.");
            CustomerController = function ($scope) { 
                alert("Inside controller. But this is NOT popping up");
                $scope.name = 'HeHe';
            };
            CustomerController.$inject = ['$scope'];
            angular.module('demoApp').controller('CustomerController', CustomerController);
        }());
    </script>
</body>
</html>

控制器内部的警报未弹出。弹出第一个警报。 id =“Trial”的div也不打印名称。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

您永远不会创建demoApp - 模块。使用angular.module(name)获取已创建的模块,angular.module(name, dependencies)设置(创建)模块。所以只需添加:

angular.module('demoApp', []);

angular.module('demoApp')行以上,您的电线工作正常:

(function () {
    alert("Inside Self invoking function. This is popping up.");

    CustomerController = function ($scope) { 
                alert("Inside controller. But this is NOT popping up");
                $scope.name = 'HeHe';
            };
    CustomerController.$inject = ['$scope'];
  
    angular.module('demoApp', []);
            
    angular.module('demoApp').controller('CustomerController', CustomerController);
}());
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="demoApp" data-ng-controller="CustomerController">
    <h2>Customers</h2>
    <div id="Trial">{{name}}</div>
</body>