Javascript 为什么这个简单的ng绑定和ng显示不起作用?

Javascript 为什么这个简单的ng绑定和ng显示不起作用?,javascript,angularjs,google-maps,Javascript,Angularjs,Google Maps,我试图显示从谷歌的Place服务获取的数据。出于某种原因,我可以将对象记录到控制器内部的控制台中,但在HTML文件中,指令根本没有被填写。因为我没有使用映射,所以我为节点传入了一个div元素。在线上似乎没有关于以这种方式显示属性的指南,所以我尝试将对象分配给范围变量并以这种方式显示$scope.location将完全可行的对象打印到控制台屏幕,但ng bind或ng show指令无法生成任何内容 controllers.js Controllers.controller("LocationCon

我试图显示从谷歌的Place服务获取的数据。出于某种原因,我可以将对象记录到控制器内部的控制台中,但在HTML文件中,指令根本没有被填写。因为我没有使用映射,所以我为节点传入了一个div元素。在线上似乎没有关于以这种方式显示属性的指南,所以我尝试将对象分配给范围变量并以这种方式显示
$scope.location
将完全可行的对象打印到控制台屏幕,但
ng bind
ng show
指令无法生成任何内容

controllers.js

Controllers.controller("LocationController", ["$routeParams", "$scope", "$location", function($routeParams, $scope, $location) {

    if (!$routeParams.placeId) return $location.path("/");

    var PlaceService;
    $(document).ready(function() {
        PlaceService = new google.maps.places.PlacesService(document.getElementById("locationContainer"));
    });

    PlaceService.getDetails({ placeId: $routeParams.placeId }, function(place, status) {
        if (status == google.maps.places.PlacesServiceStatus.OK) {
            $scope.location = place;
            return console.log($scope.location);
        }
        return console.log("ERROR: " + status);
    });

}]);
location.html:

<div class="container-fluid">
    <div class="row">
        <div class="col-xs-12">
            <div class="col-xs-4">
                <img ng-src="{{ location.icon }}">
            </div>
            <div class="col-xs-8">
                <p ng-bind="location.name"></p>
            </div>
        </div>
    </div>
</div>
<div id="locationContainer"></div>

控制台输出:
对象{address\u components=[9],adr\u address=“USA”,格式化的{u address=“935 W威斯康星大道,密尔沃基,WI 53233,USA”,更多…}

这是您的异步调用。 替换


异步调用不会在angular$digest事件中发生。所以我们需要告诉angular绑定这个值。这方面有官方文件。
if (status == google.maps.places.PlacesServiceStatus.OK) {
        $scope.location = place;
        return console.log($scope.location);
 }
$scope.$apply(function(){
    if (status == google.maps.places.PlacesServiceStatus.OK) {
        $scope.location = place;
        return console.log($scope.location);
    }
}