4

私は現在、wookmark プラグインと angularjs を使用してサムネイルのようなピンタレストを作成する作業に携わっています。サーバーの応答に時間がかかるため、10 秒の $timeout を使用してサムネイルを表示できます。データが完全にロードされた後にレイアウトを呼び出したかったのです。私は約束をしてみましたが、うまくいきませんでした。

$timeout を使用せずに Wookmark レイアウトを呼び出す方法はありますか?

私のコードbelows:

myApp.controller("MyCtrl", ['$scope', '$timeout', 'eventData', function($scope,  $timeout, eventData) {
    function init() {
        $scope.publicstreams = [];
        $scope.publicstreams = eventData.getEvent(0);
        $timeout(initWookmark, 10000);
    }

    function initWookmark() {
        var options = {
            autoResize: true, // This will auto-update the layout when the browser window is resized.
            container: $('#tiles'), // Optional, used for some extra CSS styling
            offset: 5, // Optional, the distance between grid items
            flexibleWidth: 310 // Optional, the maximum width of a grid item
        };
        var handler = $('#tiles li');
        $('#tiles').imagesLoaded(function() {
            // Prepare layout options.
            // Get a reference to your grid items.
            // Call the layout function.
            handler.wookmark(options);
        });
        handler.wookmark(options);
    }
    init();
}]);

どんな助けでも大歓迎です!

4

1 に答える 1

2

神に感謝します!

最後に、私は自分でそれを理解しました。$timeout で遅延を 0 に設定すると、うまくいきました。

どのように?

$timeout は、ブラウザでの DOM のレンダリングが終了した後に実際に実行されます。したがって、0ミリ秒の遅延でも機能します。

于 2013-08-01T06:02:26.523 に答える