javascript - 如何找出为什么 ng-click() 没有第二次触发

标签 javascript jquery angularjs

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

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/ 我该如何调试这种情况?问题可能出在哪里?我很困惑为什么这段代码只能完美运行一次。我怎样才能找到修复它的地方?

最佳答案

我在本地做了同样的环境。但没有遇到任何问题。无论如何,请检查此 fiddle 以获取更多详细信息,或者我可以向您发送我创建的用于测试相同代码的 html 文件。它工作得很好。每次点击都会关闭弹出窗口。

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

刚刚删除了一些代码行:

 scope:false,

和指令:

<editable></editable>

请检查并报告我。很高兴能为您提供帮助。

关于javascript - 如何找出为什么 ng-click() 没有第二次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28153768/

相关文章:

javascript - Angular 会将我的对象推出范围,或者将对象与我的提供者合并

javascript - Pub/Sub 和 jQuery 数据链接有什么区别?

javascript - 我可以在 scrolltop 中使用百分比作为值吗?

javascript - 使用按钮和 JS 水平滚动隐藏的 overflow-x

javascript - 无法在 jquery php codeigniter 中获取动态创建的输入字段值

javascript - 使用 Node.js 网络服务器的 Angular.js 教程

javascript - 如何统计mongodb中的记录数

javascript - 使用基于值属性的键盘选择选项

javascript - jQuery slider : only last slider working on page with multiple sliders

javascript - Angularjs 自定义表单元素