我正在尝试将邮政编码传递给使用此zip运行API调用的服务。问题是,每次输入zip和搜索时,邮政编码都不会正确传递给服务,我的HTTP请求会以邮政编码的形式发送为未定义。
这是我的控制器:
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 :(得分:0)
根据您的代码,它应该有效。它正在我的plunker上工作,除了你没有将你的服务模块添加到你的控制器模块,如:
angular.module('MainCtrl', ['MainService']).controller('MainController',
此处的Plunker:http://plnkr.co/edit/Ey3K5eF5h56dqWTji5uX?p=preview