Javascript 如何找出ng-click()不再次触发的原因
我有一些代码,可以在jsfidle上工作,但不能在本地工作。 在这段代码中,我有一个编译模板并附加到DOM的指令。在这个模板中,我绑定了一些ng click事件关闭弹出窗口。此事件触发一次,当第二次打开popover并尝试关闭它时,它不起作用。 代码如下:Javascript 如何找出ng-click()不再次触发的原因,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我有一些代码,可以在jsfidle上工作,但不能在本地工作。 在这段代码中,我有一个编译模板并附加到DOM的指令。在这个模板中,我绑定了一些ng click事件关闭弹出窗口。此事件触发一次,当第二次打开popover并尝试关闭它时,它不起作用。 代码如下: mymodal.directive('editable', function ($compile) { return { restrict: 'EAC', template: "<a href='
mymodal.directive('editable', function ($compile) {
return {
restrict: 'EAC',
template: "<a href='#' id='pop-over-link'>Show pop-over</a>",
scope: {test: '&'},
link: function(scope, element, attrs) {
scope.closePopover = function($event){
var el = $event.target;
$($event.target).parents('div.popover').popover('hide');
};
var templateData =
"<button class='btn btn-default btn-sm cancel' ng-click='closePopover($event)'>Cancel</button>";
var compliedData = $compile(templateData)(scope);
$(element)
.popover({html: true,
content: compliedData
})
.on('click', function(e) {
e.preventDefault();
return true;
});
}
}
这里是JSFIDLE:
如何调试这种情况?问题出在哪里?我不明白为什么这段代码只能完美地工作一次。我怎样才能找到wehere来修复它呢?我已经在本地创建了相同的环境。但没有任何问题。不管怎样,请查看这个提琴以了解更多详细信息,或者我可以向您发送为测试相同代码而创建的html文件。它很好用。每次点击都会关闭弹出窗口 刚刚删除了一些代码行:
scope:false,
和指令:
<editable></editable>
请检查一下,并报告我。这对您很有帮助。如果它在小提琴中工作,而不是在本地工作,那么在某个地方一定会有差异,您必须找到它。是的,但没有明显的差异。您确定上面的指令没有嵌套在其他代码段中吗?您的模块称为mymodal?如果不是,这就是主要问题。只是一个提示,请小心使用.on event,因为该函数来自jquery而不是angularjs,并且不会触发角度数字循环,所以要将单击事件绑定到元素,请使用“bind”click,function`