2016-06-16 10 views
1

Ich benutze diesen Dienst, um JSON-Daten zu erhalten. Wie kann ich zwei Parameter übergeben? Mit dem JSON muss ich ein Drop-Down-Feld füllen.Angular Pass-Parameter und empfangen JSON

 myApp.service('allCurrentSettingsService', ['$http', '$q', function ($http, $q) { 
     var allSettings = null; 
     this.getList = function() { 
      var def = $q.defer() 
      if (allSettings) { 
       def.resolve(allSettings); 
      } else { 
       $http.post('GetAllCurrentSettings', { companyName: compName, customerName: custName }) 
        .then(function (response) { 
         var response = $.parseJSON(response.data) 
         allSettings = response; 
         def.resolve(allSettings); 
        }); 
      } 
      return def.promise; 
     } 
    }]); 

Und hier rufe ich den Dienst:

myApp.controller('myController', ['$scope', 'getDocTypesService', 
    function ($scope, getDocTypesService) { 
    $scope.getDocTypes = ''; 
    getDocTypesService.getList(compName, custName).then(function (value) { 
    $scope.getDocTypes = value 
    }); 
} 

]);

+0

Wo würden Sie Parameter hinzufügen? Frage? URL params? Karosserie ? – mfrachet

+0

sind die beiden Parameter von eckigen zu Ihrem Service oder von Ihrem Service zu eckigen? – Manatax

+0

Danke. Die Parameter gehen von Winkel Service zu meinem MVC-Controller – user6440175

Antwort

1

Sie haben die Funktionsparameter verpasst. Bitte fügen Sie dasselbe in der Funktionsdefinition hinzu.

this.getList = function (compName, custName) { 
 
      var def = $q.defer() 
 
      if (allSettings) { 
 
       def.resolve(allSettings); 
 
      } else { 
 
       $http.post('GetAllCurrentSettings', { companyName: compName, customerName: custName }) 
 
        .then(function (response) { 
 
         var response = $.parseJSON(response.data) 
 
         allSettings = response; 
 
         def.resolve(allSettings); 
 
        }); 
 
      } 
 
      return def.promise; 
 
     }

können Sie rufen die $ http.post() auf andere Weise auch:

var data = {param:'val1',.....} 
 
    $http({ 
 
    url: "time.php", 
 
    method: "POST", 
 
    params: data 
 
    })

+0

Ich habe versucht, dass (siehe die aktualisierte Datei) aber nicht funktioniert – user6440175

+0

Bitte überprüfen Sie die aktualisierte Antwort. – Aravind

+0

Danke. Können Sie mir zeigen, wie diese Parameter hinzugefügt werden, wenn ich den Dienst anrufe, habe ich den Code hinzugefügt. – user6440175

Verwandte Themen