2016-06-09 9 views
6

hier ist mein Javascript-Code

$scope.addUser = function() { 
       debugger; 
       url = baseURL + "AddUser"; 
       $scope.objUser = []; 
       $scope.objUser.push({ 
        "ID": '0', 
        "UserName": $scope.txtUserName, 
        "Password": $scope.txtPassword, 
        "Role":"Non-Admin" 
       }); 

       $http.post(url,$scope.objUser[0]) 
        .success(function (data) { 
         debugger; 
         alert("S"); 
         window.location = "../View/Login.html"; 
        }).error(function() { 
         debugger; 
         alert("e"); 

        }); 
      } 

hier Code meine Server-Methode kann

[HttpPost] 
     public int AddUser(UserModel user) 
     { 
      //_entity.Configuration.ProxyCreationEnabled = false; 
      tblUser objUser = new tblUser(); 
      objUser.UserName = user.UserName; 
      objUser.Password = user.Password; 
      objUser.Role = user.Role; 
      _entity.tblUsers.Add(objUser); 
      _entity.SaveChanges(); 
       return objUser.ID; 
    } 
+0

Sie sollten es versuchen, indem Sie eine Zeitüberschreitung hinzufügen – tarzanbappa

+0

Haben Sie Ihre Server-Methode überprüft, gibt es immer Erfolg – tarzanbappa

+0

, wenn ich Projekt ohne Debugger im Browser ausführen zeigt es Warnmeldung ich schrieb in Fehler von ajax.and danach wirft es " HTTP-Fehler 405.0 - Methode nicht zulässig ". –

Antwort

0

Sie ist Versprechen verwenden, um die Antwort zu erhalten. Dies kann innerhalb eines Dienstes sein und es aufrufen, wann immer Sie es verwenden möchten.

this.addUser = function (obj) { 
     var datosRecu = null; 
     var deferred = $q.defer(); 
     var uri = baseUrl + 'addUser'; 
     $http({ 
      url: uri, 
      method: 'post', 
      data: angular.toJson(obj) 
     }).then(function successCallback(response) { 
      datosRecu = response; 
      deferred.resolve(datosRecu); 
     }, function errorCallback(response) { 
      datosRecu = response; 
      deferred.resolve(datosRecu); 
     }); 
     return deferred.promise; 
    }; 

Auch .error und .success sind veraltet.

PD: Der Parameter data: innerhalb der $http entsprechen der Körper. wenn Sie Parameter senden möchten, sollten Sie params:{}

EDIT: Hier lasse ich euch einen Link, wie Versprechen arbeiten. Angular promises Grundsätzlich hilft diese Daten zu verarbeiten asynchron

das obige Beispiel kann in einem Dienst wie diese

myApp.service('myService', function($q, $http){ 

// here your services.... 

}); 

der Dienst innerhalb jeden Controller injiziert werden kann verwendet werden, um die Daten zu liefern, dass das, was Sie wollen, innen von Ihren Funktionen

myApp.controller('myController', function($scope, myService){ 

    $scope.list = function(){ 
     $promise = myService.getAll(); // this will be the name of your function inside your servive 
     $promise.then(function(data){ 
     console.log(data); //here you can se your promise with data like status and messages from the server. 
     }); 
    }; 

}); 

Ich hoffe, es hilft.

+0

Ich denke, Sie sind richtig.Versprechungen können hier verwendet werden.aber ich bin neu zu angularJS so kann ich nicht verstehen, seinen code.can geben Sie einen Link, um Versprechungen in besserer Weise zu verstehen.? –

+0

Ok, ich werde es hinzufügen –