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

  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • Justin Case

    Justin Case

    3 EKİM 2011
  • midomansour

    midomansour

    19 EYLÜL 2009