$scope在遵循 Google 文档后无法从回调函数访问
$scope is not accessible from callback function after following Google docs
我已经按照Google文档(向下滚动)使用Cloud Endpoints引导AngularJS。我的代码如下所示:
索引.html
<!DOCTYPE html>
<html ng-app="AnimalsApp">
<head>
<meta charset="UTF-8">
<title>Animal Manager Server</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.28/angular.min.js"></script>
<script src="js/animal.js"></script>
<script src="https://apis.google.com/js/client.js?onload=init"></script>
</head>
<body>
<div ng-controller="MainCtrl" class="container">
{{message}} world
</div>
</body>
</html>
动物.js
angular.module('AnimalsApp', [])
.controller('MainCtrl', ['$scope', '$window', function($scope, $window) {
$scope.message = 'Hello';
$window.init = function() {
$scope.$apply($scope.load_guestbook_lib);
};
$scope.load_guestbook_lib = function() {
gapi.client.load('creatureCloud', 'v1', function() {
$scope.is_backend_ready = true;
$scope.message = 'Hello beautiful';
console.log('Made it!');
}, 'http://localhost:8888/_ah/api');
};
}]);
function init() {
window.init();
}
文本 Made it!
显示在控制台日志中,表明回调已执行。但是,设置$scope.is_backend_ready = true
对显示<div id="listResult" ng-controller="MainCtrl" class="container">
没有影响。这让我相信回调中的$scope
对象无法正常工作。
我做错了什么?谷歌文档错了吗?
您使用$scope.$apply()
的意图是正确的,但它在错误的位置。您需要在回调中执行此操作,而不是在回调中执行此操作。按照你的方式,你正在执行函数load_guestbook_lib
,然后执行摘要循环。由于gapi.client.load
函数是异步的,因此它会稍后运行,并且不会发生摘要,因为它发生在角度上下文之外。
尝试:
$window.init = function() {
$scope.load_guestbook_lib(); //Just invoke the function
};
$scope.load_guestbook_lib = function() {
gapi.client.load('creatureCloud', 'v1', function() {
$scope.is_backend_ready = true;
$scope.message = 'Hello cats';
console.log('Made it!');
$scope.$apply(); //<-- Apply here
}, 'http://localhost:8888/_ah/api');
};
相关文章:
- 查询后websql成功回调无法访问变量
- 访问通过XHR.onreadystatechange回调中的XHR.send(data)发送的数据
- jQuery post,访问responseType或回调中的响应
- 在jQuery中,我如何从$.ajax回调函数访问$(this)
- 如何处理在javascript中访问数据结构的两个回调
- 如何在Typescript中的回调中访问类变量
- 如何访问ng-init或ng-checked中服务回调函数中声明的$scope变量
- 可以't从回调函数内部访问响应
- 如何在Promise回调中访问实例变量
- 如何通过回调访问nodejs中的mongodb计数结果
- 回调访问数据
- 如何从回调访问成员变量
- 从回调访问对象的属性
- 如何从传入的预定义回调访问外部变量
- 从 topic.subscribe's 回调访问小部件
- Javascript从另一个回调访问对象变量,而不将变量放在全局范围内
- 如何从WebSocket回调访问React中的组件方法
- 当使用原型方法声明从回调访问对象时,如何访问对象的其他方法
- js回调访问Angular作用域
- 从XMLHttpRequest onload回调访问全局变量