SORU
5 HAZİRAN 2013, ÇARŞAMBA


AngularJS HTML işleme tamamlandıktan sonra jQuery kodu çalıştırın

Kumanda bazı JSON veri $http ya $kaynak hizmetleri kullanarak. Sayfanın veri $kapsam bu ve AngularJS güncellemeleri HTML yapısı yazıyorum. Benim sorunum ng-repeat Açısal yönergesi dolu yeni boyutu (genişlik ve yükseklik) liste (İ, DOM element yani HTML) ne olduğunu bilmek istiyorum. Sonuç olarak, doğru Açısal bitirir DOM yapısı güncelledikten sonra javascript kodu çalıştırmak için var. Bunu yapmak için doğru yolu nedir? Son dört saat içinde internette araştırdım ama sorunuma bir çözüm bulamadım.

Bu JSON veri alıyorum o kadar

var tradesInfo = TradesInfo.get({}, function(data){
    console.log(data);
    $scope.source.profile = data.profile;
            $scope.trades = $scope.source.profile.trades;
        $scope.activetrade = $scope.trades[0];
        $scope.ready = true;


    init();  //I need to call this function after update is complete

});

Ve bu init() işlev olur:

function init(){
    alert($('#wrapper').width());
    alert($('#wrapper').height());
}

Kolay bir şey bu sorunu çözmek için olması gerektiğini ben de biliyorum ama şimdi bulamıyorum. Şimdiden teşekkürler.

CEVAP
5 HAZİRAN 2013, ÇARŞAMBA


Aslında bu durumda açısal yolu tek doğru yol :) ama kolay yoldan değil

Yüksekliğini bilmek istediğiniz bir yönerge yazın ve öğesine eklemek gerekiyor. Ve denetleyici bir olay yayın yönergesi olay yakalar ve orada $DOM manipülasyon yapabilirsiniz. HİÇ denetleyicisi.

var tradesInfo = TradesInfo.get({}, function(data){
    console.log(data);
    $scope.source.profile = data.profile;
    ...

    $scope.$broadcast('dataloaded');
});


directive('heightStuff', ['$timeout', function ($timeout) {
    return {
        link: function ($scope, element, attrs) {
            $scope.$on('dataloaded', function () {
                $timeout(function () { // You might need this timeout to be sure its run after DOM render.
                    element.width()
                    element.height()
                }, 0, false);
            })
        }
    };
}]);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • gsipek

    gsipek

    20 Temmuz 2007
  • Ludique

    Ludique

    21 NİSAN 2009
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008