2016-06-18 10 views
0

Controller.jsvorbei Fehlermeldung aus dem Dienst an den Controller in AngularJS

var vm = this; 
vm.admin = {}; 

vm.add = function() { 
    API.addAdmin(token, vm.admin) 
     .then(function (resp) { 
      vm.hideForm = true; 
      vm.showButton = true; 
      Notify.green(resp); 
     }, function (resp) { 
      Notify.red(resp); 
     }); 
}; 

api.js

function addAdmin(token, dataObj) { 
     return Constant.getApiUrl() 
      .then(function (url) { 
       $http({ 
        method: 'POST', 
        url: url + '/client/admin', 
        headers: { 
         'Token': token 
        }, 
        data: dataObj 
       }).then(handleResp); 

       function handleResp(resp) { 
        var responseStatus = (resp.status >= 200 && resp.status < 300) ? 'good' : 'bad'; 
        if (responseStatus === 'good') { 
         console.log("Success" + resp); 
         return resp; 
        } else { 
         console.log("Failed" + resp); 
         return resp; 
        } 
       } 
      }) 
    } 
  1. Wenn ich eine Erfolgsantwort in API erhalten dann ich brauche um es mit Erfolgsfunktion in meinem Controller zu verbinden und wenn ich Fehlermeldung in meiner API bekomme, dann brauche ich es, um es mit der Fehlerfunktion in meiner Kontrolle zu verbinden Wie sollte ich den Antwortstatus von meiner API aus bewerten (ist entweder Erfolg oder Fehler).

  2. Ich möchte nicht successfn, errorfn von meinem Controller an API übergeben (nur wenn es keine Alternative gibt).

  3. Ich brauche die Antwortdaten von API zu Controller, um es in Notify Nachricht zu zeigen.

Vielen Dank!

angular.module('appname').service('myserviceName', function(yourExistingService){ 
      this.myFunction= function(originalData) { 
     //for next line to work return promise from your addAdmin method. 
      var promise = yourExistingService.getResponseFromURL(originalData); 
          return promise; 
      }       
     }); 

Und in Ihrem Controller:

Antwort

0

In Service (Antwortwerte in "originalData "zuweisen)

var promise = myserviceName.myFunction($scope.originalData); 
       promise.$promise.then(function() { 
         console.log($scope.originalData);         
        }); 

Und dann können Sie Sie überprüfen" originalData" und schreiben Code für Ihren Bedarf.Für weitere Details können Sie sich diese http://andyshora.com/promises-angularjs-explained-as-cartoon.html ansehen.

+0

Hallo @Amit, die Funktionalität ist die gleiche wie meine, ich muss entweder Erfolg oder Misserfolg ** im Versprechen ** unterscheidet es von Service zu Controller zurück, danke –

Verwandte Themen