angular:如果容器有ng-click,锚链接对android没有效果

时间:2015-01-08 06:32:26

标签: android angularjs cordova angularjs-ng-click

我有一个使用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属性,则该链接在手机上正常工作。

知道为什么会发生这种情况,或者更重要的是,如何解决这个问题?

1 个答案:

答案 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();是否真的需要。即使没有它们,它在我的机器人上工作得很好,但我为了额外的安全而添加它们。