如果在没有jQuery的情况下使用,ui-sref不能使用ng-click(angular-touch)

时间:2014-01-27 10:43:52

标签: jquery angularjs angular-ui-router angularjs-ng-touch

我很难从我们的应用程序中删除jQuery。主要问题:将ng-clickui-sref

组合在一起的简单链接
<a data-ui-sref="main2" data-ng-click="reportClick()">Link</a>

结果:ng-click触发,ui-sref没有。 这种情况只发生在使用 angular-touch ,没有 jQuery 作为依赖项和移动浏览器时,或者在新的Chrome 32中使用移动设备的模拟时(我使用了Nexus 4作为仿真目标)。

正在运行的示例:http://jsfiddle.net/scheffield/AEfMm/

要在移动浏览器中查看效果:http://jsfiddle.net/scheffield/AEfMm/show

我已经做了一些研究,发现事件对象已经破坏了:

element.bind("click", function(e) {
    var button = e.which || e.button;

    if ((button === 0 || button == 1) && !e.ctrlKey && !e.metaKey && !e.shiftKey) {
      // HACK: This is to allow ng-clicks to be processed before the transition is initiated:
      $timeout(function() {
        scope.$apply(function() {
          $state.go(ref.state, params, { relative: base });
        });
      });
      e.preventDefault();
    }
  });

这是一个只包含两个函数的对象,只有angular.noop实现。

有什么想法吗?

0 个答案:

没有答案