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

  • Bryan Smith

    Bryan Smith

    12 Mart 2006
  • ExcelIsFun

    ExcelIsFun

    16 ŞUBAT 2008
  • sonia989

    sonia989

    26 EKİM 2006