/ / Funktion in AngularJS-Controller wird nicht aufgerufen - anglejs, anglejs-controller, anglejs-ng-click

Funktion im AngularJS-Controller wird nicht aufgerufen - angularjs, angularjs-controller, angularjs-ng-click

Ich versuche, eine Funktion von meinem AngularJS-Controller mit dem folgenden Code aufzurufen:

Controller-Code

(function () {

var hello = angular.module("helloApp", []);

hello.controller("HelloCtrl", ["$http", "$scope", function($scope, $http) {
console.log("in controller");
$scope.test = function() {
console.log("in test function");
$http.get("/test").success(function(data) {
console.log("success");
})
.error(function(data) {
console.log("error");
});
};
} ]);

})();

HTML

<!DOCTYPE html>
<html ng-app="helloApp">
<head>
...
</head>
<body ng-controller="HelloCtrl">
<div class="container">
<form class="form-horizontal">
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default" ng-click="test()">Search</button>
</div>
</div>
</form>
</div>
...
</body>

Wenn ich die Anwendung starte, sehe ich die Nachricht "in controller"wie ich es erwarten würde. Wenn ich jedoch auf die Schaltfläche zum Senden klicke, sehe ich keine der anderen drei Konsolenmeldungen.

Was vermisse ich?

Antworten:

5 für die Antwort № 1

Ihre Reihenfolge der Abhängigkeitsinjektion ist falsch.

hello.controller("HelloCtrl", ["$http", "$scope", function($scope, $http) {

Sollte sein

 hello.controller("HelloCtrl", ["$http", "$scope", function($http, $scope) {

Die Reihenfolge der Parameter muss mit der Reihenfolge der Namen übereinstimmen.