我成功地将一个jQuery插件变成了一个指令。
app.directive('bxSlider', function($timeout)
{
return {
restrict: 'A',
link: function(scope, element, attrs)
{
$timeout(function(){element.bxSlider(scope.$eval(attrs.bxSlider))},1);
}
}
});
在我的控制器中(通过点击功能),我想调用一个在插件上公开的方法,但我不知道该怎么做。我尝试将指令设置为变量并从我的控制器调用它,但是我得到的错误是...没有方法......
这样做的正确方法是什么?
答案 0 :(得分:0)
您可以广播一个事件来触发您的插件方法。
app.directive('bxSlider', function($timeout)
{
return {
restrict: 'A',
link: function(scope, element, attrs)
{
var slider;
$timeout(function() {
slider = element.bxSlider(scope.$eval(attrs.bxSlider));
}, 1);
scope.$on('reload-slider', function() {
slider.reloadSlider();
});
}
}
});
然后在控制器功能中使用$scope.$broadcast('reload-slider')
。