Javascript 如何找出ng-click()不再次触发的原因

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='

我有一些代码,可以在jsfidle上工作,但不能在本地工作。 在这段代码中,我有一个编译模板并附加到DOM的指令。在这个模板中,我绑定了一些ng click事件关闭弹出窗口。此事件触发一次,当第二次打开popover并尝试关闭它时,它不起作用。 代码如下:

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`