2016-12-29 10 views
1

私はangularJs指示が完了して終了するのを待つローダーを使用しています。 逆も正確です。私の指示が最初に終わると、ページが表示される前にimgローダーが来なければなりません。 は、ディレクティブはその実行を終了することをした後、私はすべてのimgがロードされるのを待っている、あまりにもjQueryプラグインを使用してい異なる要素でトリガーされたいくつかのイベントを聴いた後のトリガー関数

$timeout(function() { 
    var DirectivesEnded = new Event('DirectivesEnded'); 
    document.dispatchEvent(DirectivesEnded); 
}, 5000); 

角度$タイムアウトを使用してDOMイベントを放送しています。

$images = $("img"); 
imagesLoaded($images).on('done', function (instance, image) { 

}); 

両方のイベントがトリガーされた後、これらの行のコードを実行して、ローダーのhtmlレイヤーを消したいと思います。

$(".lazy-load").animate({ 
    'opacity': 0 
    }, 300, "linear", function() { 
    setTimeout(function() { 
     $(".lazy-load").hide(); 
    }, 10); 
    }); 

これらのイベントと機能の両方が別々に実行されています。しかし、私の目的はそれらの両方を組み合わせることです。誰もがこれを行う方法を考えている?あなたはデータのみを取得する前に、簡単なローダーを表示したい場合は

+0

だから、すべての画像がロードされた後に 'timeout'の中にあるものを実行したいですか? – Sojtin

答えて

1

私はよくあなたの質問を理解している場合

var check_sum = 0; 
$timeout(function() { 
    var DirectivesEnded = new Event('DirectivesEnded'); 
    document.dispatchEvent(DirectivesEnded); 
    check_sum++; 
    finished(); 
}, 5000); 

$images = $("img"); 
imagesLoaded($images).on('done', function (instance, image) { 
    check_sum++; 
    finished(); 
}); 


function finished() { 
    if(check_sum==2) check_sum=0; 
    else return; 
    $(".lazy-load").animate({ 
    'opacity': 0 
    }, 300, "linear", function() { 
    setTimeout(function() { 
     $(".lazy-load").hide(); 
    }, 10); 
    }); 
} 
+0

私はこの解決策を試みていますが、角度のタイムアウトからチェックサムを取得できません。これは未定義です。私は窓と根元からそれを得ようとしましたが、それは存在しません。 angular.min.js:119 ReferenceError:check_sumが定義されていません –

+0

@hich_ham私は全く角度がわかりません、あなたはそのようなウィンドウオブジェクトから保存して取得しようとしました。 'window.check_sum = 0; // '' window.check_sum ++;を定義します。 //増分 '' window.check_sum; //受ける? – Sojtin

+0

すぐにすべてのコードを書いてくれてありがとう –

0

、あなたは、単に角度の方法を使用してこれを実現することができ、コードは以下のようなものが考えられます。

<div ng-show="ctrl.loading" ng-include="'assets/templates/loader.tpl.html'"> Loading ... </div> 
<div ng-hide="ctrl.loading">Content</div> 

//In controller, set ctrl.loading to false after fetching the data. 
関連する問題