我有一个孤立的范围指令,当我点击一个按钮时调用该指令,该指令将所有范围的attrs传递给一个element.bind('点击'打开一个fancybox(显示一个模态)我遇到的问题是当fancybox打开并点击一个链接时,如果我在该锚点上放置一个onclick事件,它就永远不会触发,它表示该函数未定义,即使它在指令定义中也是正确的。我不会'得到它,有什么不对?
以下是一个例子:
search.directive('popup', [ function () {
return {
scope: {
content: '@',
expiration: '@',
instructions: '@'
},
restrict: 'A',
controller: function($scope, $element) {
function hello() {
alert('hello richie');
}
var attr = '<a onclick="hello();" href="google.com">' + $scope.content + '</a>';
$element.bind('click', function() {
$.fancybox.open({
modal : false,
maxWidth : 800,
maxHeight : 600,
fitToView : false,
autoSize : true,
content: attr,
closeClick : false,
openEffect : 'none',
closeEffect : 'none',
helpers: {
overlay: {
locked: false
}
},
tpl : {
closeBtn : '<button type="button" class="fancybox-item fancybox-close close my-own-close">×</button>'
}
});
});
答案 0 :(得分:0)
我不熟悉您正在使用的fancybox课程,但我猜测您需要在html上调用$compile才能将其设置为内容,否则它只是原始HTML,它将没有角度上下文。因此,它将寻找一个名为hello()的全局函数,它不存在。