如何找出为什么ng-click()不会第二次触发

时间:2015-01-26 15:58:57

标签: javascript jquery angularjs

我有一些代码,可以在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;
            });                                    
        }
    }

这里是jsFiddle:http://jsfiddle.net/vc4sd1fe/ 我如何调试这种情况?哪里可能是问题?我很困惑为什么这段代码只能完美地工作一次。我怎么能找到无处修复的呢?

1 个答案:

答案 0 :(得分:0)

我在本地制作了相同的环境。但没有得到任何问题。无论如何检查这个小提琴更多细节或我可以发送我创建的html文件来测试相同的代码。它工作得很好。每次点击都会关闭弹出窗口。

http://jsfiddle.net/Satbir/cswcopgr/

刚刚删除了一些代码:

 scope:false,

和指令:

<editable></editable>

请检查并报告我。帮助你真是太好了。