2016-04-05 26 views
1

Basit bir AngularJS uygulaması oluşturdum, sorun şu ki, modelimdeki değişiklikler nedeniyle görünümüm otomatik olarak güncellenirse (aşağıdaki örnekte gösterilmiyor), araç ipucu yok Artık bir bootstrap araç ipucu gibi görünmüyor.AngularJS View güncellendikten sonra bootstrap araç ipuçlarını başlat

Bu yanıtı satckoverflow buldum, ancak bu çözümü nasıl uygulayacağımı bilmiyorum. Belki birisi bana aşağıdaki MWE'de verilen bağlantıdan yaklaşımı gösterebilir.

<div class="container" ng-app="testApp" ng-controller="testController"> 
    <h3>Data from Scope: {{data}}</h3> 
    <a href="#" data-toggle="tooltip" title="Hooray!">Hover over me</a> 
    <button type="button" ng-click="refresh()">refresh data</button> 
</div> 

<script> 
    $(document).ready(function() { 
     $('[data-toggle="tooltip"]').tooltip(); 
    }); 
</script> 

<script> 
    var app = angular.module('testApp', []); 
    app.controller('testController', function($scope) { 
    $scope.data= 123; 
    $scope.refresh = function() { 
     $scope.data= Math.random(); 
    } 
    }); 
</script> 
+0

için geçerlidir Uygulama adınız html ve JS'de farklı mı? Ayrıca projenizde yönlendirici kullanacak mısınız? –

+0

güncelleştirildi – d4rty

+0

AngularStrap kullanıyor musunuz? –

cevap

2

kullanın bu dinamik çalışma kod kodunuzu sarın. Üzerlerinde set [data-toggle="tooltip"] özniteliği elemanlarında fareyi hiç ipucu gösterildiğinde

$(document).on('mouseover','[data-toggle="tooltip"]',function(){ 
    $(this).tooltip('show'); 
}); 

fikirdir. Bu, tüm öğeler (statik ve dinamik)

+0

Bu işe yarıyor, ancak araç ipucunu 2 kez açmaktan kaçınmak için düğme elemanını nasıl değiştirmeliyim? – d4rty

+0

Bu çözüm iki kez yukarı çıkarıyor mu? Araç ipucunu belgeye hazırladığınız yerde kodunuzu çıkarmanız gerekiyor .. sadece yukarıdaki kod yeterlidir. Eğer hala sorunlarınız varsa, bu '$ (this) .tooltip ('destroy')' ı deneyin. araç ipucunu yok edin ve sonra tekrar uygulayın. –

+0

@ d4rty Eğer bu çözüm sorunu çözdüyse lütfen cevabı işaretleyin. –

1

Projenizde ngRoute kullanıyorsanız, aşağıdaki kodu denetleyicinize koyabilirsiniz.

$scope.$on('$viewContentLoaded', function(event){ 
    console.log('content loaded!') 
    }); 

Aksi takdirde, $ zaman aşımı içindeki

var app = angular.module('testApp', []); 
    app.controller('testController', function($scope, $timeout) { 
    $timeout(function(){ 
     $scope.data= "hello"; 
    }); 
    }); 
+0

ngRoute kodunu denetleyiciye tam olarak nereye koymalıyım? – d4rty

İlgili konular