最简单的AngularJS代码无法运行

3
在我正在开发的网站中,我想要实现一个简单的AngularJS功能 - 通过模块控制器触发警报。这是我的代码:
app1.js:
(function() {
    var app1 = angular.module('myApp', []);

    app1.controller('MyController', function() {
        alert('Hey');
    });
});

Index.html:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" ng-app="myApp">
<head>
    <title>Angular</title>

    <script src="Scripts/angular.min.js"></script>
    <script src="Scripts/app1.js"></script>
</head>
<body ng-controller="MyController">
    {{5 + 3}}
</body>
</html>

我在浏览器中期望看到的结果是:
8
并伴随着一个 "Hey" 的提示框,对吗?但是我实际在浏览器看到的只有这个:
{{5 + 3}}
您有什么解决办法吗?需要修复什么吗?

1
显然,Angular没有正确引导。您的控制台中有任何错误吗?尝试删除(function() { ? 也请检查您的Angular脚本路径。 - trainoasis
1个回答

12
您的应用程序和控制器初始化代码从未被调用,您需要执行以下操作:
(function() {
    var app1 = angular.module('myApp', []);

    app1.controller('MyController', function() {
        alert('Hey');
    });
})(); // <=== Change is here

解释:

(function() { /*code*/});

将创建一个匿名函数,但不会调用该函数。要调用它,需要在结尾添加(),然后再加上;:

(function() { /*code*/})();
// Here ----------------^

更多信息:http://en.wikipedia.org/wiki/Immediately-invoked_function_expression


2
@ Rasalom: 我已经修改过了,以展示我的意思。 - T.J. Crowder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接