Próbuję wykonać samouczek, ale ten kod nie działa dla mnie. Czy ktoś może wyjaśnić, dlaczego i jak go rozwiązać? Myślę, że ma to związek z kontrolerem ng, ale nie jestem pewien, dlaczego.
<!doctype html>
<html ng-app>
<head>
<title>AngularJS 2</title>
<script src="angular.min.js"></script>
</head>
<body ng-controller="MyController">
<h1>{{author.name}}</h1>
<p>{{ author.title + ", " + author.company }}</p>
<script>
function MyController($scope) {
$scope.author = {
"name" : "Ray Villa",
"title" : "Staff Author",
"company" : "boss`enter code here`.com"
}
}
</script>
</body>
</html>
Odpowiedzi:
2 dla odpowiedzi № 1Twój kod nie działałby w wersji kątowej 1.3+, ponieważ definiujesz kontroler jako funkcję globalną.
Z dokumentacji AngularJS:
Migracja z 1,2 do 1,3
Kontrolery
Z powodu 3f2232b5 kontroler $ nie będzie już wyglądałdla kontrolerów w oknie. Stare zachowanie patrzenia w okno na kontrolery było pierwotnie przeznaczone do użycia w przykładach, pokazach i aplikacjach zabawkowych. Odkryliśmy, że zezwolenie na globalne funkcje kontrolera zachęca do złych praktyk, dlatego postanowiliśmy domyślnie wyłączyć to zachowanie.
Aby przeprowadzić migrację, zarejestruj kontrolery w modułach zamiast ujawniać je jako globalne Zamiast tego zdefiniuj kontroler w następujący sposób:
<html ng-app="myApp">
<head>
<title>AngularJS 2</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
</head>
<body ng-controller="MyController">
<h1>{{author.name}}</h1>
<p>{{ author.title + ", " + author.company }}</p>
<script>
angular.module("myApp", []);
angular.module("myApp").controller("MyController", function ($scope) {
$scope.author = {
"name": "Ray Villa",
"title": "Staff Author",
"company": "boss`enter code here`.com"
}
});
</script>
</body>
</html>
0 dla odpowiedzi nr 2
Brakuje nawiasu zamykającego w definicji funkcji.
0 dla odpowiedzi № 3
Brakuje Ci kontekstu kątowego.
Twoja aplikacja wymaga modułu, więc musisz pisać ng-app="myApp"
i użyj tego modułu, aby zarejestrować funkcję kontrolera.
function MyController($scope) { /* ... */ }
angular.module("myApp, []).controller("MyController", MyController);
Dzięki temu Angular uruchomi aplikację (myApp) i zarejestruje określony kontroler.