我正在使用ng-repeat
将网址添加到每个按钮中的 iframe {{item.details}},这样做正常。
HTML:
<a class="various small_button shadow none" fancybox ng-href="{{item.details}}">View Details</a>
问题是为fancybox
创建指示,以便在单击按钮时创建lightbox iframe
。我试图通过查看这些帖子post1和post 2以及其他一些帖子来解决此问题,但它们很有帮助但在这种情况下不是解决方案。
Fancybox指令:
app.directive('fancybox', function(){
return{
restrict: 'e',
link: function(scope, element, attrs){
element.fancybox({
type :'iframe',
scrolling : 'no',
maxWidth : 800,
maxHeight : 400,
fitToView : true,
width : '70%',
height : '70%',
autoSize : false,
closeClick : true,
openEffect : 'none',
closeEffect : 'none',
source :function(current){
return $(current.element);
}
});
}
}
});
使用jQuery,我使用类“.various”和“.ad”调用fancybox
。我想以相同的方式调用fancybox
仅使用angular。
原创花式jQuery:
jQuery(document).ready(function(){
//fancybox window script
$(".various").fancybox({
type :'iframe',
scrolling : 'no',
maxWidth : 800,
maxHeight : 400,
fitToView : true,
width : '70%',
height : '70%',
autoSize : false,
closeClick : true,
openEffect : 'none',
closeEffect : 'none',
});
$(".ad").fancybox({
maxWidth : 210,
maxHeight : 140,
fitToView : true,
width : '100%',
height : '100%',
autoSize : false,
closeClick : true,
openEffect : 'none',
closeEffect : 'none'
});
});//set up close
答案 0 :(得分:5)
您可以使用:
app.directive('fancybox', function(){
return {
restrict: 'A',
link: function(scope, element, attrs){
$(element).fancybox({
type :'iframe',
scrolling : 'no',
maxWidth : 800,
maxHeight : 400,
fitToView : true,
width : '70%',
height : '70%',
autoSize : false,
closeClick : true,
openEffect : 'none',
closeEffect : 'none'
});
}
}
});
属性restrict
必须是A
(大写),因为在您的示例中,指令是属性。 E
(大写)是指令是元素的时候。您可以使用组合:restrict: 'AE'
。 More information
您需要使用$(element).fancybox({ ... })
,因为fancybox是一个jquery插件。