最简单的AngularJS代码不起作用

kir*_*riz 3 javascript angularjs

在我的网站上,我正在开发一个简单的AngularJS功能 - 从模块控制器发出警报.这是我的代码:

app1.js:

(function() {
    var app1 = angular.module('myApp', []);

    app1.controller('MyController', function() {
        alert('Hey');
    });
});
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

结果我的浏览器应该是:

8

发出警告并发出消息"嘿",对吗?我得到的只是在我的浏览器中:

{{5 + 3}}

任何想法如何解决这一问题?

Ras*_*lom 12

您从未调用应用程序和控制器初始化代码,您需要这样做:

(function() {
    var app1 = angular.module('myApp', []);

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

说明:

(function() { /*code*/});
Run Code Online (Sandbox Code Playgroud)

将创建一个匿名函数,但不会调用该函数.要调用它,您需要()在最后添加;:

(function() { /*code*/})();
// Here ----------------^
Run Code Online (Sandbox Code Playgroud)

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

  • @ Rasalom:我冒昧地编辑以表明我的意思. (2认同)