如何在AngularJS中获得ng-repeat中的函数结果?

时间:2017-11-30 08:12:47

标签: angularjs

ng-repeat尝试通过将纬度和经度传递给函数来显示位置地址,如下所示:

$scope.address = function(lat,lng){
    return reverseGeocode.geocodePosition(lat,lng, function(address){
        console.log(address);
        return address;
    });
};

我使用reverseGeocode.geocodePosition来获取地址,下面是我的观点

<table class="rideTable">
   <tbody>
      <tr class="" ng-repeat="item in rideDetailsArray">
         <td class="ridTd">
            <div class="rideName">Ride {{$index + 1}}</div>
         </td>
         <td>
            <p>Pick location : {{address(item.pick_lat,item.pick_long)}}</p>
            <p>Drop location : {{address(item.drop_lat,item.drop_long)}}</p>
         </td>
      </tr>
   </tbody>
</table>

选择位置和放置位置未显示在视图中。我该如何解决这个问题,能否得到任何帮助。

3 个答案:

答案 0 :(得分:1)

从ng-repeat

尝试此调用功能
     $scope.LocationNameFilter = function (id)//here pass your object id
{
                if ($scope.GetLocation.length > 0) {
                    var SelectStream = [];
                    if (id) {
                        SelectStream = $filter('filter')($scope.GetLocation, 
                        { _id: id });    //some condition passing your values 
                    }
                    return SelectStream[0].AddressName;
                }
                else {

                }
            };

答案 1 :(得分:0)

$scope.address是一个不返回任何内容的函数。因此,默认情况下,返回值为undefined

因此,AngularJS在视图中将其显示为空白。您可能想要更改以下功能:

$scope.address = function(lat,lng){
    return reverseGeocode.geocodePosition(lat,lng, function(address){
        console.log(address);
        return address;
    });
};

答案 2 :(得分:0)

您还需要返回响应,将您的功能更改为

$scope.address = function(lat,lng){
    return reverseGeocode.geocodePosition(lat,lng, function(address){
        console.log(address);
        return address;
    });
};