这个Angular-ui预先输入代码有什么问题?

时间:2014-05-21 05:05:06

标签: javascript angularjs angular-ui angular-ui-bootstrap

我对http://angular-ui.github.io/bootstrap/

中提供的angular-ui typeahead示例做了一些小修改

这是控制器内部的原始代码。

  $scope.getLocation = function(val) {
    return $http.get('http://maps.googleapis.com/maps/api/geocode/json', {
      params: {
        address: val,
        sensor: false
      }
    }).then(function(res){
      var addresses = [];
      angular.forEach(res.data.results, function(item){
        addresses.push(item.formatted_address);
      });
      return addresses;
    });
  };

以下是我所做的更改;

  $scope.getLocation = function(val) 
  {
    return $http.get('http://maps.googleapis.com/maps/api/geocode/json', 
    {
      params: 
      {
        address: val,
        sensor: false
      }
    }).success(function(data, status, headers, config)
    {
      var addresses = [];
      angular.forEach(data.results, function(item){
        addresses.push(item.formatted_address);
      });
      return addresses;
    });
  };

我的代码出了什么问题?我没有得到任何错误。这种先行者没有用。当我输入输入框内的文本时,我看不到任何预先输入的文本。

感谢。

1 个答案:

答案 0 :(得分:3)

.success()方法实际上会返回typeahead api所期望的承诺。 .then()方法确实返回了一个promise。有关.success().then()之间差异的详细信息,请参阅this answer