Ich lerne Angular.js und kann nicht herausfinden, was mit diesem einfachen Code falsch ist. Es sieht gut aus, aber es gibt mir einen Fehler.
**Error**: Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.14/$injector/modulerr?p0=app&p1=Error%3A%20…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.3.14%2Fangular.min.js%3A17%3A381)
Und bevor ich ng-app="app"
hinzufügte (ich behielt es nur als ng-app
), gab es folgende Fehler. Warum das?
Error: [ng:areq] http://errors.angularjs.org/1.3.14/ng/areq?p0=Ctrl&p1=not%20a%20function%2C%20got%20undefined
at Error (native)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:6:417
at Sb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:19:510)
at tb (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:20:78)
at $get (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:75:331)
at https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:57:65
at s (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:7:408)
at A (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:56:443)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:299)
at g (https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js:51:316)
<!doctype html>
<html ng-app="app">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
</head>
<body>
<div ng-controller="Ctrl">
<input ng-model="name">
<h1>{{name}}</h1>
<h2>{{age}}</h2>
</div>
<script>
var Ctrl = function($scope)
{
$scope.age = 24;
};
</script>
</body>
</html>
Nach AngularJS Version 1.3 ist die Deklaration der globalen Controller-Funktion deaktiviert
Sie müssen zuerst ein AngularJS-Modul erstellen und dann alle Komponenten an dieses bestimmte Modul anschließen.
CODE
function Ctrl($scope) {
$scope.age = 24;
}
angular.module('app', [])
.controller('Ctrl', ['$scope', Ctrl]);
Speziell für Ihren Fall gibt es ein Problem mit AngularJS 1.3.14
(das Downgrade auf 1.3.13
funktioniert gut). Obwohl ich es vorziehen würde, dass Sie verwenden gewinkelt 1.2.27 AngularJS 1.6.X, die stabilere Version und neueste Version von AngularJS.
UPDATE:
Sie können den aktuellen Code für den Arbeitsstatus verwenden, indem Sie die globale Controller-Deklaration in angular.config
zulassen. Dies ist jedoch nicht der richtige Weg, um die Winkelanwendung auszuführen.
function Ctrl($scope) {
$scope.age = 24;
}
angular.module('app', [])
.config(['$controllerProvider',
function ($controllerProvider) {
$controllerProvider.allowGlobals();
}
]);
Ich war selbst für einige Zeit in dieser Ausgabe gefangen. Bitte überprüfen Sie in der Reihenfolge: -
Der Pfad zu Ihrem angle.js-Skript ist korrekt (unabhängig davon, ob Sie es in Ihrem HTML-Code aus einer lokalen Quelle oder als externe Ressource aufrufen).
Als nächstes prüfen Sie, ob Ihre App initialisiert ist oder nicht, sobald Ihre angle.js korrekt ist.
var app=angular.module('app',[])
// in Ihrer app.js-Datei
<body ng-app="app">
// in deinem HTML
Registrieren Sie anschließend Ihren Controller in der App und geben Sie alle erforderlichen Injektionen weiter
app.controller('myCtrl',function(){});
Rufen Sie Ihre Javascript-Datei in Ihrer HTML-Datei auf
<script src="app.js"></script>
Sie müssen Ihren Controller definieren
var app = angular.module('app', []);
app.controller('Ctrl', ['$scope',function($scope) {
$scope.age = 24;
}]);
Stellen Sie sicher, dass ng-app="app_name"
define mit übereinstimmen muss
var app=angular.module(
'app_name'
,[])
<html ng-app="myApp">
<body>
<div ng-controller="Ctrl">
<input ng-model="name">
<h1>{{name}}</h1>
<h2>{{age}}</h2>
</div>
<script>
var app = angular.module('myApp',[]); // same to the above define appName
app.controller('Ctrl',function($scope){
$scope.age=24; // initialize age by injecting scope
});
</script>
</body>
<html>
Für weitere Informationen besuchen Sie Hier