在 angular 上更改 $scope 变量后执行 Leaflet API
Execute Leaflet API after a $scope variable changed on angular
在通过使用 ng-show 更改 $scope 变量显示元素后,我必须在元素上绑定 js 事件。
在我更改范围后,我 运行 JS 脚本但是 Js 比 angular 最快,他错过了一些 div ng-show 尚未显示的内容。
这里是这个问题的一些代码示例的插件。我为此类问题找到的解决方案是在 setTimeout 中执行 JS 代码,但我需要一个干净的解决方案:https://plnkr.co/edit/iYDs552yCyd3R7ivgD84?p=preview
$scope.start = function(){
$scope.showMap=true;
setTimeout(function(){
jsFunc();
},1000);
}
使用$timeout
服务:
$scope.start = function(){
$scope.showMap=true;
/*
setTimeout(function(){
jsFunc();
},1000);
*/
//Use $timeout
$timeout(jsFunc);
}
$timeout
服务与 AngularJS 摘要循环集成。
由于 Leaflet API 在 AngularJS 框架之外,浏览器需要 $timeout 才能呈现 DOM 并执行 Leaflet API 代码.
有关详细信息,请参阅 AngularJS $timeout Service API Reference。
在通过使用 ng-show 更改 $scope 变量显示元素后,我必须在元素上绑定 js 事件。
在我更改范围后,我 运行 JS 脚本但是 Js 比 angular 最快,他错过了一些 div ng-show 尚未显示的内容。
这里是这个问题的一些代码示例的插件。我为此类问题找到的解决方案是在 setTimeout 中执行 JS 代码,但我需要一个干净的解决方案:https://plnkr.co/edit/iYDs552yCyd3R7ivgD84?p=preview
$scope.start = function(){
$scope.showMap=true;
setTimeout(function(){
jsFunc();
},1000);
}
使用$timeout
服务:
$scope.start = function(){
$scope.showMap=true;
/*
setTimeout(function(){
jsFunc();
},1000);
*/
//Use $timeout
$timeout(jsFunc);
}
$timeout
服务与 AngularJS 摘要循环集成。
由于 Leaflet API 在 AngularJS 框架之外,浏览器需要 $timeout 才能呈现 DOM 并执行 Leaflet API 代码.
有关详细信息,请参阅 AngularJS $timeout Service API Reference。