所以我在我的网站上使用footables,这是一个jQuery插件。我把它包装成一个角度指令,如下所示:
angular.module('myApp').directive("footable", function() {
return {
restrict: 'A',
link: function(scope, element, attrs){
return element.footable(scope.$eval(attrs.footable));
}
}
});
然后我打电话就像
一样<table class="footable" footable="{breakpoints: {'phone': '639','tablet':'767'}}">
问题在于,即使指令正在创建一个足迹,但是足迹需要100毫秒才能工作,如果我在移动设备中启动它不会重排,除非我在我的控制器中发送超时,如下所示:
$timeout(function(){
$('.footable').trigger('footable_redraw'); //force a redraw
}, 100);
这个问题是我使用的是jquery,并且这是我的页面控制器。我想把这个超时和重绘放在指令中并让它工作吗?还是有另一种方法让finnicky jquery插件工作?
答案 0 :(得分:1)
您总是可以将超时移动到指令中,对吗?
angular.module('myApp').directive("footable", function($timeout) {
return {
restrict: 'A',
link: function(scope, element, attrs){
element.footable(scope.$eval(attrs.footable));
$timeout(function(){
element.trigger('footable_redraw');
}, 100);
}
}
});
这是一个更好的Angular zen,但可能有一个更好的方法来处理这个脚本身。