Javascript Ng显示对范围变量更改没有反应
首先,我将infoWindow的布尔值设置为false: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
$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吗?通常你发布它的方式,它应该工作得很好。