Angular.js - 使用AJAX加载进行级联选择

时间:2012-12-13 22:12:57

标签: select angularjs

我有两个选择:一个用于国家,另一个用于区域。国家选择是静态填充的,但区域选择必须通过POST请求依赖于当前国家/地区填写。

我已经创建了一个响应country参数和相应JSON的服务器方法,制作了一个用于将数据加载到select中的代码,但是当我将这些代码放入监视器时它无法正常工作:

.....................
]).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;
});

1 个答案:

答案 0 :(得分: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的通话将会有效。