我遇到了一个我似乎无法弄清楚的小问题。下面的代码有效,除了您第一次将鼠标悬停在链接上。非常感谢任何帮助。
<div ng-app="myApp">
<a
class="pop-over"
data-original-title="default value"
data-placement="top">test link</a>
</div>
var app = angular.module("myApp", []);
app.directive('popOver', function($http) {
return {
restrict: 'C',
link: function(scope, element, attr) {
element.bind('mouseover', function(e) {
$http.get("http://ip.jsontest.com/?callback=someFunction")
.success(function(data) {
attr.$set('originalTitle', data);
element.tooltip();
});
})
}
}
});
答案 0 :(得分:4)
好的,所以在AJAX调用之前调用.tooltip()
似乎是个好主意,但是该方法会将data-original-title
或'title'
复制到其内部变量中,因此我们无法更改它: (。
问题是调用tooltip()它只是监听onmouseover事件。您必须致电.tooltip('show')
以使其以编程方式显示。
这是工作小提琴:http://jsfiddle.net/rB5zT/49/
这是正确的方法:
var app = angular.module("myApp", [])
app.directive('popOver', function($http) {
return {
restrict: 'C',
link: function(scope, element, attr) {
var i =0;
element.tooltip();
$(element).bind('mouseover',function(e) {
$http.get("test").success(function(){
attr.$set('originalTitle', "Some text "+i++);
element.tooltip('show');
});
});
}
}
});