angular: anchor link не работает на android, если его контейнер имеет ng-click
У меня есть приложение PhoneGap, которое использует Angular.
В приложении я показываю некоторый контент, который при нажатии должен перейти на другую страницу. Однако, если ссылки в этом содержимом нажаты, они должны привести пользователя к их целевому объекту, а не к целевому объекту по умолчанию.
Тем не менее, я заметил, что если оболочка содержимого имеет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 ответ:
Вот чистый обходной путь, который я нашел для этой проблемы. В начале кода
ng-click
оболочки я добавил следующие строки:if($event && $event.target && $event.target.href) { $event.target.click(); $event.preventDefault(); $event.stopPropagation(); return; }
В атрибуте
Кроме того, я не уверен, чтоng-click
, когда вызывается этот код, я передаю$event
в качестве аргумента.$event.preventDefault();
и$event.stopPropagation();
действительно нужны. Он хорошо работал на моем Андроиде даже без них, но я добавил их для дополнительной безопасности.