无法从Angular控制器设置表格单元格值

时间:2017-03-21 07:43:26

标签: html angularjs

我在下面写了html和控制器代码,用于将表格单元格值设置为地理代码地址,但它无效。

<tr ng-repeat="x in tabledata">
    <td>{{ x.id }}</td>
    <td>{{x.lat}}</td>
    <td>{{x.lng}}</td>
    <td ng-if="ctrl.getAddress(x.lat,x.lng)">{{addr}}</td>
</tr>

控制器方法如下。

this.getAddress = function(lat,lng) {
        console.log('x.lat ' + lat + ' x.lng ' + lng);
        var p = new Promise(function(resolve,reject){
            var address;
            var geocoder = new google.maps.Geocoder;
            geocoder.geocode({'location': {lat: parseFloat(lat), lng: parseFloat(lng)}}, function(results, status) {
                if (status === 'OK') {
                    if (results[0]) {
                        resolve(results[0].formatted_address);
                    } else {
                        resolve('No results found');
                    }
                } else {
                    reject('Geocoder failed due to: ' + status);
                }
            });
        }).then(function(v){
            console.log('Resolved - Geo coder address ' + v);
            $scope.addr = v;
            $scope.apply;
        }).catch(function(v){
            console.log('Catch - Geo coder address ' + v);
        });

        return true;
    };

我正在获取地址值,但未将其分配给addr变量。

1 个答案:

答案 0 :(得分:0)

我可以解决以下问题。

1)在控制器函数的tabledata中再添加一个名为addr的属性。

2)从地理编码API获取地址值后,我在tabledata中设置了它的值。