Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ng显示对范围变量更改没有反应_Javascript_Angularjs - Fatal编程技术网

Javascript Ng显示对范围变量更改没有反应

Javascript Ng显示对范围变量更改没有反应,javascript,angularjs,Javascript,Angularjs,首先,我将infoWindow的布尔值设置为false: $scope.infoWindow = false; 然后我有了一个谷歌地图监听器,可以像这样点击: google.maps.event.addListener(circle, 'click', function(event) { $scope.toggleInfoWindow(); }); 正在启动此功能的: $scope.toggleInfoWindow = function() { $scope.infoWind

首先,我将infoWindow的布尔值设置为false:

$scope.infoWindow = false;
然后我有了一个谷歌地图监听器,可以像这样点击:

google.maps.event.addListener(circle, 'click', function(event) {
    $scope.toggleInfoWindow();
});
正在启动此功能的:

$scope.toggleInfoWindow = function() {
    $scope.infoWindow = !$scope.infoWindow;
}
最后,我的模板中有以下内容:

<div ng-show="infoWindow"><h1>Info Window</h1></div>
信息窗口
每当有人单击圆圈时,它都应该显示div,但它不会对$scope.infoWindow中的更改做出反应。我确信它也在变化,因为我用console.log()在单击时记录了它的值,它确实从“false”变为“true”等等


那么这里发生了什么呢?

您需要使用$scope.$apply(),无论何时在angular之外执行操作。正如你提到的,你正在使用谷歌地图,因此需要在那里添加这条线

google.maps.event.addListener(circle, 'click', function(event) {
    $scope.toggleInfoWindow();
    $scope.$apply();
});

下面是关于它的文档:$rootScope.Scope#$apply

您是否尝试在
$Scope.apply()
中使用它?您可以准备JSFIDLE或plnk吗?通常你发布它的方式,它应该工作得很好。