我很难从我们的应用程序中删除jQuery。主要问题:将ng-click
与ui-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
实现。
有什么想法吗?