angular: anchor link 在 android 上不起作用,如果它的容器有 ng-click
angular: anchor link doesn't work on android if its container has ng-click
我有一个使用 Angular 的 PhoneGap 应用程序。
在应用程序中,我显示了一些内容,点击后应该会移动到另一个页面。但是,如果单击此内容中的 link,它们应该将用户带到他们的目标,而不是默认的内容点击目标。
但是,我注意到如果内容包装器具有 ng-click
,则单击 link 不会将用户带到那个 link。它在我的 PC 上 Chrome 上完美运行,但在我的 Android 上运行不佳。即使 ng-click
属性为空也会发生这种情况,但如果它被省略则不会发生这种情况。
我用来重现的HTML是:
<div ng-click="">
some content
<a href="http://www.google.com">google</a>
other content
</div>
正如我所说,在我的 PC 上,这工作正常,单击 link 会将浏览器带到 google.com,但在我的 Android phone 上,当我将上面的 HTML 放在我的 PhoneGap 应用程序中,当我单击 link 时没有任何反应。如果我从包含的 div
中删除 ng-click
属性,那么 link 在 phone.
上工作正常
知道为什么会发生这种情况,或者更重要的是,如何解决?
这是我找到的解决问题的干净解决方法。在包装器 ng-click
代码的开头,我添加了以下行:
if($event && $event.target && $event.target.href) {
$event.target.click();
$event.preventDefault();
$event.stopPropagation();
return;
}
在 ng-click
属性中,调用此代码时,我将 $event
作为参数传递。
此外,我不确定 $event.preventDefault();
和 $event.stopPropagation();
是否真的需要。即使没有它们,它在我的 android 上也能很好地工作,但为了额外的安全,我添加了它们。
我有一个使用 Angular 的 PhoneGap 应用程序。
在应用程序中,我显示了一些内容,点击后应该会移动到另一个页面。但是,如果单击此内容中的 link,它们应该将用户带到他们的目标,而不是默认的内容点击目标。
但是,我注意到如果内容包装器具有 ng-click
,则单击 link 不会将用户带到那个 link。它在我的 PC 上 Chrome 上完美运行,但在我的 Android 上运行不佳。即使 ng-click
属性为空也会发生这种情况,但如果它被省略则不会发生这种情况。
我用来重现的HTML是:
<div ng-click="">
some content
<a href="http://www.google.com">google</a>
other content
</div>
正如我所说,在我的 PC 上,这工作正常,单击 link 会将浏览器带到 google.com,但在我的 Android phone 上,当我将上面的 HTML 放在我的 PhoneGap 应用程序中,当我单击 link 时没有任何反应。如果我从包含的 div
中删除 ng-click
属性,那么 link 在 phone.
知道为什么会发生这种情况,或者更重要的是,如何解决?
这是我找到的解决问题的干净解决方法。在包装器 ng-click
代码的开头,我添加了以下行:
if($event && $event.target && $event.target.href) {
$event.target.click();
$event.preventDefault();
$event.stopPropagation();
return;
}
在 ng-click
属性中,调用此代码时,我将 $event
作为参数传递。
此外,我不确定 $event.preventDefault();
和 $event.stopPropagation();
是否真的需要。即使没有它们,它在我的 android 上也能很好地工作,但为了额外的安全,我添加了它们。