2015-11-08 91 views
0

我試圖將郵政編碼傳遞給使用此zip運行API調用的服務。問題是,每次我輸入一個zip和搜索時,郵政編碼都不會正確地傳遞給服務,並且我的HTTP請求以未定義的郵政編碼發送。無法將變量從控制器傳遞到AngularJS中的服務

這裏是我的控制器:

angular.module('MainCtrl', []).controller('MainController', ['$scope', 'Reps', function($scope, Reps) { 
    $scope.search = function() { 
    Reps.search($scope.zipCode) 
     .success(function(response) { 
     console.log('Success ' + response); 
     }) 
     .failure(function(response) { 
     console.log('Failure ' + response); 
     }) 
    } 
}]); 

我的服務:

angular.module('MainService', []).factory('Reps', ['$http', function($http) { 
    var root = 'https://www.api.com/locate?'; 
    var apiKey = '&apikey=foo'; 
    var fields = '&fields=bar'; 

    return { 
    search: function(zipCode) { 
     var query = root + zipCode + apiKey + fields; 
     return $http({ 
     method: 'POST', 
     url: query 
     }) 
    } 
    } 
}]) 

我的形式:

<form method="post" enctype="text/plain" class="form-inline"> 
    <div class="form-group"> 
    <label for="searchForRep">Zip Code:</label> 
    <input type="text" class="form-control" id="searchForRep" ng-model="zipCode" placeholder="Zip Code (11216)"> 
    </div> 
    <button ui-sref="reps" ng-click="search()" type="submit" class="btn btn-default">Submit</button> 
</form> 

因此,如前所述,郵編似乎並沒有傳遞到我的服務正確,導致HTTP請求發送爲:

https://www.api.com/locate?undefined&apikey=foo&fields=bar 

任何想法是什麼問題與我的代碼?

回答

0

根據你的代碼它應該工作。它工作在我plunker,除了你沒有你的服務模塊添加到您的控制器模塊,如:

angular.module('MainCtrl', ['MainService']).controller('MainController', 

Plunker這裏:http://plnkr.co/edit/Ey3K5eF5h56dqWTji5uX?p=preview

+0

謝謝!我只是假定我在這裏做了一些錯誤的事情,所以我幾乎沒有看過我的其他文件。在處理這個問題之後,我意識到我只是在我的一條路線中錯過了控制器。 – lepp

相關問題