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

  • 2ndfloor91

    2ndfloor91

    17 Kasım 2007
  • buttheadgsxr1000

    buttheadgsxr

    24 Ocak 2008
  • UsherVEVO

    UsherVEVO

    15 EKİM 2009