所以我试图开始使用Angular,但遇到了一个非常简单的问题。我的应用程序中有3个页面(index.html,app.js和invite.js)。现在,我似乎已经成功初始化了角度应用程序,我可以运行该应用程序(请参阅app.js中的console.log)。
问题是 - 我正在尝试创建另一个控制器,并且我使用简单的alert()函数对其进行测试 - 但我没有得到任何响应。
任何人都可以帮助指出我哪里出错了吗?我认为这是一个简单的问题!
提前致谢:)
Index.html
<!doctype html>
<html lang="en">
<head ng-app="batchSparta">
<meta charset="UTF-8">
<title>Batch Inviter</title>
<!-- CSS and Javascripts -->
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
<script src="app.js"></script>
<script src="invite.js"></script>
<!-- END CSS and Javascripts -->
</head>
<body>
<div class="container" ng-controller="InviteController">
<div class="well">
Here you can bulk-invite users to your Sparta account.
</div>
<div ng-click="alert()" class="btn btn-primary">Generate Alert</div>
</div>
</body>
</html>
app.js(已成功显示已记录的消息)
var app = angular.module('batchSparta', []);
app.run([
function() {
console.log("Angular is running!");
}
]);
invite.js
app.controller("InviteController", function($scope) {
$scope.alert = function($scope) {
alert("Alert triggered");
}
})
答案 0 :(得分:4)
您在head
元素上设置了ng-app,因此当Angular引导时,它会在您的控制器未找到(并且不能找到)的区域初始化您的应用。
这解释了为什么你会看到run
日志;然而,你的控制器不起作用。
除非您的Angular应用程序仅驻留在页面的一部分上,否则您可以安全地在html
标记上设置该属性,使其包含整个页面:
<html lang="en" ng-app="batchSparta">