【发布时间】:2015-05-14 04:22:24
【问题描述】:
我是 AngularJS 的新手。我正在学习 AngularJS。我正在尝试遵循不同的教程。我现在使用一些代码。在这方面我有一个问题。我的代码如下
index.html
<html ng-app="main_app">
<head>
<title>AngularJS Application</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script>
<script src="js/route.js"></script>
</head>
<body ng-controller="main_controller">
<div ng-view></div>
</body>
</html>
route.js
var app = angular.module('main_app',['ngRoute']);
app.config(function($routeProvider)
{
$routeProvider
// route for the home page
.when('/', {
templateUrl : 'pages/home.html',
controller : 'main_controller'
});
});
app.controller('main_controller', function($scope)
{
alert('Yes');
});
如果我运行此代码,我会得到两次alert('Yes');。
为什么我两次收到此警报?是正常操作还是我做错了什么??
谢谢
更新
@Leo Farmer 我改变了 index.html 的结构如下
<html>
<head>
<title>AngularJS Application</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script>
<script src="js/route.js"></script>
</head>
<body>
<div ng-app="main_app">
<div ng-controller="main_controller">
<div ng-view></div>
</div>
</div>
</body>
</html>
但我仍然得到 alert() 两次。实际上,我关心的是“我做错了还是对了??”我认为获得 alert() 两次意味着我做错了。
我的结构是否遵循良好的惯例?
谢谢
【问题讨论】:
-
控制器可以触发任意次数,所以它不是一个alert()的好地方...
-
感谢@dandavis 的回复。为什么任意次数??我怎样才能控制这个任意次数?谢谢
-
更清楚一点:任何发生在控制器上的事情都会触发它,这不是一次性的“load()”式事件。您不能回收它,这将解决您的特定问题,但首先要了解为什么它是一个问题。
标签: javascript angularjs