2016-03-28 2 views
0

Wenn meine Seite geladen wird, möchte ich Daten aus einer Datenbank laden. Ich erhalte die Daten über Winkel des http-Modul mit etwas wie folgt aus:

var getdata = function(){ 
    var params = { 
     userId : 123, 
    }; 
    $http.post("url", params) 
    .success(function(data,status,headers,config){ 
     alert("success"); 
    }).error(function(){ 
     alert("Failed to connect with server"); 
    }); 
}; 

In meinem Controller erstelle ich eine Funktion namens onLoad und nennen es folgende:

var onLoad = function(){ 
    getData(); 
    console.log("load page"); 
}; 
onLoad(); 

Allerdings habe ich die folgende Fehlermeldung erhalten, wenn Ich navigiere zur Seite Fehler: [$ rootScope: inprog] http://errors.angularjs.org/1.5.0/ $ rootScope/inprog? P0 =% 24digest

Was könnte schief gehen? Vielen Dank!

+0

Können Sie uns mehr Code zeigen? – inspired

Antwort

0

Dies ist die Möglichkeit, Daten zu bekommen und noch eine Sache, die ich nicht wissen, was depedencies Sie in Ihrem Controller in Fall hinzugefügt, wenn Sie nicht dann tun dies der richtige Weg ist so

 var app = angular.module('myApp', []); 
     app.controller('myCtrl', function($scope, $http) { 
    $http({ 
    method : "POST", 
    url : Your Url 
}).then(function mySucces(response) { 
    $scope.myWelcome = response.data; 
}, function myError(response) { 
    $scope.myWelcome = response.statusText; 
}); 
    }); 
+0

Nein, die '$ http'-Syntax ist absolut korrekt. Just params sollte durch 'body' oder' data' definiert werden –

+0

$ http sollte als Parameter an den Controller übergeben werden –

+0

Ich kenne Bro, aber er hat nicht seine Abhängigkeitsinjektion oder Parameterliste gezeigt, in der er seinen Controller definiert hat. –

0
zu tun

Sie haben einen kleinen Fehler in Ihrem Code, den Sie hier gezeigt haben, ist der Schreibfehler getData() Aufruf ist falsch, weil Sie Ihre Funktion mit getdata() definiert haben.

Ich habe eine fiddle aus Ihrem Code erstellt und es funktioniert einwandfrei.

angular.module('myApp', []) 
    .controller('myCtrl', function($scope, $http) { 
    $scope.sendPost = function() { 
     var data = $.param({ 
     json: JSON.stringify({ 
      name: $scope.newName 
     }) 
     }); 
     onLoad(data); 
    } 
    var getdata = function(data) { 
     $http.post("/echo/json/", data) 
     .success(function(data, status) { 
      console.log(data) 
      $scope.hello = data; 
     }) 
    }; 

    var onLoad = function(data) { 
     getdata(data); 
     console.log("load page"); 
    }; 

    $scope.hello = { 
     name: "Boaz" 
    }; 
    $scope.newName = ""; 

    }) 

Dieser Fehler wird nicht durch den Code, den Sie hier gezeigt haben, verursacht. Bitte aktualisieren Sie Ihre Frage mit dem entsprechenden Code, nachdem Sie diesen Fehler behoben haben.

Hoffe es hilft