2016-03-24 2 views
0
undefined

Ich versuche, meinen ersten Controller und bekomme diese Fehler zu machen:AngularJS Fehler: [ng: AREQ] Argument 'Testcontroller' ist keine Funktion, bekam

Fehler: [ng: AREQ] Argument ' TestController 'ist keine Funktion, undefined

Ich habe meinen Code vereinfacht, um den Fehler zu finden, aber kein Glück. Es sieht so aus, als würde ich den Controller und das Bucharray im Skript erstellen und den Controller Buchstabe für Buchstabe im div referenzieren. Was vermisse ich?

<!doctype html> 
<html data-ng-app> 
<head> 
    <meta charset="utf-8"/> 
</head> 
<body> 

    <div data-ng-controller="TestController"> 
     <ul> 
      <li data-ng-repeat="b in books">{{ b.title + ' by ' + b.author }}</li> 
     </ul> 
    </div> 

    <script src="angular.js"></script> 
    <script> 
     function TestController() { 
      this.books = [{title: 'Angela', author: 'Donald Duck'}, {title: 'Angles', author: 'Dirty Harry'}]; 
     } 
    </script> 
</body> 
</html> 
+0

Ich bin ein Tutorial folgenden und als JB Nizet Punkte meines Wissens ist out „veraltet“. Ich habe festgestellt, dass es nach der ersten Hälfte der 1.3.0-Betas nicht mehr funktioniert. –

Antwort

1

Es ist schon sehr lange her, dass globale Funktionen in angular.js keine Controller mehr sind. Sie müssen die Funktion als Controller in Ihrem Modul registrieren:

<html ng-app="myApp"> 

und in dem JS-Code:

angular.module("myApp", []).controller('TestController', function($scope) { 
    $scope.books = ...; 
}); 

Ihr Winkel Wissen ist out-of-date. Lesen Sie die Dokumentation erneut.

0

oder die einfachere Art und Weise

angular.module("myApp", []).controller('TestController', TestController); 

function TestController($scope) { 
$scope.books= [{title: 'Angela', author: 'Donald Duck'}, {title: 'Angles', author: 'Dirty Harry'}]; 

} 
Verwandte Themen