Angular代码没有显示在html页面上
Angular Code not showing up on html page
我已经纠结了2个小时了,找不到解决方案。下面是chrome开发工具显示日志的输出。
(为了)
1 - check
2 -一个Google用户
为什么在我的html的地方变量不被更新为"一个谷歌用户"?
var myApp = angular.module('myApp', []);
myApp.controller('AppCtrl', ['$scope', '$http', '$log',
function($scope, $http, $log) {
var request = {
placeId: 'ChIJX3piIfJ4j4ARXuQlqgn6LaA' //Walmart HQ
};
service = new google.maps.places.PlacesService(map);
service.getDetails(request, function(place, status) {
$log.log('1 - check');
$log.log('2 - ' + place.reviews[0].author_name);
$scope.place = place.reviews[0].author_name;
});
$log.log('3 - ' + $scope.place);
}
]);
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title>Place details</title>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=places"></script>
<script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js'></script>
<script src="app.js"></script>
</head>
<body>
<div id="map"></div>
<div ng-controller='AppCtrl'>
{{ place }}
</div>
</div>
</body>
</html>
google.maps.places.PlacesService
不是内置的异步处理程序,您需要在异步调用后运行$scope.$apply
。使用$scope.$apply
更新视图:
$scope.$apply(function () {
$scope.place = place.reviews[0].author_name;
});
更新1
检查$apply
:
当可能发生更新时,Angular会执行脏检查。XHR呼叫不在该范围内。Angular不会更新视图,除非你要求通过$apply()用于在angular框架之外执行angular中的表达式。(例如从浏览器DOM事件,setTimeout, XHR或第三方库)。因为我们是在调用angular框架,所以我们需要执行正确的范围生命周期异常处理,执行watch。
$apply
进行脏检查。最好的做法是:尽可能使用Angular的内置提供商,比如$timeout
、$http
。或者ng-click
, ng-change
,等等。这些将隐式调用$apply
。 相关文章:
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 使用鼠标悬停JavaScript/HTML显示文本
- 用javascript在html显示列表中显示新成员
- 尊重“; 〃;从HTML显示中的API响应返回的换行符(和特殊字符)
- HTML 显示/隐藏元素 JS 不起作用
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 使用javascript for html显示特定时区的日期和时间
- 如何将一个元素的外部HTML显示为另一个元素的内容
- 将SQL BIT转换为JSON,直到jQuery,最后以HTML显示
- 使用 Javascript 迭代以 HTML 显示多个图像
- 文本(输入)字段中的 HTML 显示结果
- PHP - 作曲家自动加载器导致 html 显示在浏览器中
- 将HTML文件中的表单提交到PHP文件,并以相同的HTML显示结果
- 如何使 HTML/Javascript 从 PHP 脚本接收数据并以 HTML 显示
- 显示一个图像,然后使用 HTML 显示另一个图像
- input type=“password” 在 IE 11 上使用 HTML 5 显示文本
- 使用 JSON 从 PHP 返回数组并以 HTML 显示内容的适当方法
- Jquery对话框IE9内容未使用html显示
- HTML显示在“;查看源“;与Firebug中显示的HTML不同
- 使用jQuery.HTML()插入时HTML显示不正确