我有一个使用Angular的PhoneGap应用。
在应用程序中,我会显示一些内容,单击此内容后,应移至另一个页面。但是,如果单击此内容中的链接,则应将用户带到其目标,而不是默认内容单击目标。
但是,我注意到如果内容包装器有ng-click
,则单击链接不会将用户带到该链接。它可以在我的电脑上的Chrome上完美运行,但不适用于我的Android。即使ng-click
属性为空,也会发生这种情况,但如果省略则不会。
我用来重新创建它的HTML是:
<div ng-click="">
some content
<a href="http://www.google.com">google</a>
other content
</div>
正如我所说,在我的电脑上,这可以正常工作,点击该链接会将浏览器带到google.com,但在我的Android手机上,当我将上述HTML放入我的PhoneGap应用程序时,当我点击该按钮时没有任何反应链接。如果我从包含ng-click
中移除div
属性,则该链接在手机上正常工作。
知道为什么会发生这种情况,或者更重要的是,如何解决这个问题?
答案 0 :(得分:0)
以下是我发现的问题的简洁解决方法。在包装器的ng-click
代码的开头,我添加了以下几行:
if($event && $event.target && $event.target.href) {
$event.target.click();
$event.preventDefault();
$event.stopPropagation();
return;
}
在ng-click
属性中,当调用此代码时,我将$event
作为参数传递。
此外,我不确定$event.preventDefault();
和$event.stopPropagation();
是否真的需要。即使没有它们,它在我的机器人上工作得很好,但我为了额外的安全而添加它们。