0

テンプレートhtmlでルートを使用しています

$routeProvider.when('/newroute',
{
templateUrl: 'template/newroute.html',
controller: 'myController'
});

テンプレートhtmlがレンダリングされた後、jqueryを使用してDOMを操作するために何かをする必要があります(それは良い習慣ではないことはわかっていますが、質問に対する答えが見つかりませんでした)

ただし、テンプレート html がレンダリングされた直後に発生する適切なイベントを見つけることができませんでした。以下を試しましたが、うまくいきません。

$scope.$on('$viewContentLoaded', function () {
   doSomething(); //does not work
});

viewContentLoaded にデバッグすると、テンプレートの html DOM はまだ見えません。何か案は?

4

1 に答える 1

0

私も同じ問題を抱えていました。setTimeoutjQueryを実行するために使用して解決しました

                setTimeout(function () {
                var l=$('.accordion-section').length;
                if(l>0){
                    $('.accordion-section').equalHeights();
                }
            },500);

setTimout 呼び出しをコントローラーの初期化に入れました。ここには他にもいくつかの答えがありますが、$timeoutうまくいきませんでした。 AngularJS:AngularJS がテンプレートをレンダリングした後に追加のコードを実行する方法は?

于 2013-12-09T13:55:17.680 に答える