0

イベント後に AngularJS が HTML の変更を完了した後で、いくつかのコードを実行したいと考えています。私は次のことを試みました:

angular.module('ngC', [], function($routeProvider, $locationProvider)
{
    $locationProvider.html5Mode(true);
})
.directive("carousel", function () {
    return function (scope, element, attrs) {
        scope.$watch("imgs", function (value)
        {
            //  Here my code
        });
    };
});

問題は、AngularJS がコードを置き換える前にコードが実行される{{}}ことですが、後で実行したいということです。

4

2 に答える 2

0

私は私の答えを見つけました:jQueryはAngularJS ng-viewで正しく動作しません

// (inside some function with $rootScope available)
$rootScope.$on('$viewContentLoaded', function() {
    // ... (multiview init code here) ...
});
于 2013-05-27T20:29:55.860 に答える
0

$watch リスニング関数で newValue が oldValue と異なるかどうかを比較するだけで、何かが変更されたかどうかがわかります。

scope.$watch("imgs", function (newValue, oldValue)
{
    if(newValue !== oldValue) {         
       // Here my code
    }
});

編集:ドキュメントから

ウォッチャーがスコープに登録された後、リスナー fn が ($evalAsync を介して) 非同期的に呼び出され、ウォッチャーが初期化されます。まれに、watchExpression の結果が変化しなかったときにリスナーが呼び出されるため、これは望ましくありません。リスナー fn 内でこのシナリオを検出するには、newVal と oldVal を比較します。これら 2 つの値が同一 (===) の場合、リスナーは初期化のために呼び出されました。

于 2013-04-28T17:07:55.997 に答える