<!DOCTYPE html>
<html ng-app="app">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="../css/lib/bootstrap4.css">
<script type="text/javascript" src='../js/lib/angular.js' ></script>
<script type="text/javascript" src='js/initAndController.js'></script>
</head>
<body ng-init="foo='bar'">
<p ng-controller="myCtrl">
</p>
</body>
</html>
js
var app = angular.module('app', []);
app.controller('myCtrl', ['$scope', function($scope){
console.log(foo)
}])
Pourquoi signale-t-il une erreur disant que foo
est undefined
?
De plus, le code suivant me laisse également perplexe :
<!DOCTYPE html>
<html ng-app="app">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="../css/lib/bootstrap4.css">
<script type="text/javascript" src='../js/lib/angular.js' ></script>
<script type="text/javascript" src='js/directive.js'></script>
</head>
<body ng-controller="myCtrl">
<my-directive />
<h1 ng-init="greet='hello world'">
The greeting is {{greet}}
</h1>
</body>
</html>
js
var app = angular.module('app', []);
app.controller('myCtrl', ['$scope', function($scope){
}])
app.directive('myDirective',function(){
return {
restrict : 'E',
replace : true,
template : '<a href="http://google.com">to Google</a>'
}
})
Pourquoi n'y a-t-il qu'un seul résultat vers Google mais pas de texte dans la balise h1 ?
Le premier : console.log(foo)
Ceci devrait être console.log($scope.foo)
Le deuxième : Comprendre la signification de l'attribut replace:true
Parce que votre ng-init est défini en dehors de ng-controller="myCtrl". Je suppose que ng-init ne sera pas exécuté tant que tous les contrôleurs ne seront pas initialisés, donc pour le moment, foo n'est pas défini
Cette question n’est pas claire.