0

我有两个选择:一个是国家,另一个是地区。国家选择是静态填写的,但地区选择必须根据当前国家通过 POST 请求填写。

我已经创建了一个使用相应 JSON 响应国家/地区参数的服务器方法,编写了将数据加载到选择中的代码,但是当我将此代码放入手表时,它无法正常工作:

.....................
]).factory('helperService', [
'$http', '$log', function($http, console) {
  var checkDiscount, getRegions;
  getRegions = function(countryCode) {
    return $http({
      method: 'POST',
      url: '/api/regions/',
      data: {
        country_code: countryCode
    }
  });
};

.....................
]).controller('orderController', [
.....................
$scope.$watch('billing_country', function(value) {
  helperService.getRegions($scope.country).success(function(result) {
    $scope.regions = result;
    return $scope.order.billing_state = $scope.regions[0];
  });
  return $scope.country = value;
});
4

1 回答 1

0

您的调用factory必须返回一个对象,目前它根本没有返回任何东西。

将其更改为以下内容:

.factory('helperService', ['$http', '$log', function($http, console) {

  var checkDiscount;

  var service = {
    getRegions: function(countryCode) {
      return $http({ method: 'POST',
                     url: '/api/regions/', 
                     data: { country_code: countryCode }
      });
    }
  };

  return service;
}])/****/

然后你的电话helperService.getRegions就会奏效。

于 2012-12-13T23:45:51.880 回答