在 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