1

ng-showを使用して$ scope変数を変更して表示された後、要素にjsイベントをバインドする必要があります。

スコープを変更した後、私はJSスクリプトを実行しましたが、Jsは、彼が見逃した角度よりも速いですが、まだng-showで表示されていないdivが見つかりました。

ここには、この問題のサンプルコードの一部があります。 $timeoutサービスが統合され

$scope.start = function(){ 
    $scope.showMap=true; 
    /* 
    setTimeout(function(){ 
    jsFunc(); 
    },1000); 
    */ 
    //Use $timeout 
    $timeout(jsFunc); 
} 

$timeoutサービスを使用しhttps://plnkr.co/edit/iYDs552yCyd3R7ivgD84?p=preview

$scope.start = function(){ 
    $scope.showMap=true; 

    setTimeout(function(){ 
    jsFunc(); 
    },1000); 
} 
+0

スコープ変数にウォッチを追加する必要があります:https://www.sitepoint.com/mastering-watch-angularjs/ –

+0

あなたが言ったように私はちょうどそれを編集しますが解決しませんでした問題は、watch関数は、anglejsによって作られたdomの変更より少し早く呼び出される – SWahi

答えて

1

:私はこの種の問題が見つかり解決策はのsetTimeoutでJSのコードを実行することですが、私はクリーンなソリューションが必要ですAngularJSダイジェストサイクルを使用します。

リーフレットAPIはAngularJSフレームワークの外部にあるため、ブラウザがDOMをレンダリングしてリーフレットAPIコードを実行するには$タイムアウトが必要です。

詳細については、AngularJS $timeout Service API Referenceを参照してください。

+0

もう1つの方法は[Angular-UI ui-leaflet](https://github.com/angular-ui)のような指令を使うことです/ ui-リーフレット)。 – georgeawg

+0

ええ、私はそれを前に試してみましたが、いくつかの特定のニーズのために非常に限られています。 – SWahi

関連する問題