2013-12-06 5 views
12

Я создаю приложение Кордовы и время отклика кликов медленное.Интеграция Fastclick.js с AngularJS

Я found в angular-touch плагин для угловых (которые, предназначены для угловых 1.2.0, похоже, что это, скорее всего, работать с более старыми версиями Угловое, так как это действительно просто набор директив), но при попытке это, я не получил результатов, которые я хотел. Клики по-прежнему не срабатывают при нажатии.

Из того, что я понимаю, fastclick.js является более устойчивой альтернативой угловому касанию в настоящий момент (поскольку угловое касание все еще находится в разработке). Я, однако, хочу, чтобы мои директивы ng-click использовали fastclick.

Как интегрировать fastclick.js с угловым - могу ли я просто включить файл и инициализировать сценарий, или мне нужно обернуть поведение fastclick в ng-click (по сути, что касается углового касания с его первым кодом)?

Примечание. Мое приложение использует Angular 1.0, так как оно было создано до стабильного выпуска.

+0

Если щелчки не стреляя на кране, то вы сделали что-то неправильно. Я много раз использовал 'ng-click', и он всегда работал как шарм. Возможно, покажите нам упрощенный упрощенный код. – TheHippo

+0

В качестве альтернативы вы можете попробовать: https://github.com/randallb/angular-hammer, который предоставляет директивы для привязки hammer.js к angular.js. – TheHippo

+0

@ TheHippo Извините, не было ясно. Клики стреляют, но после задержки 300 мс - это то, что я имел в виду. Это делает все довольно невосприимчивым. Честно говоря, это может быть хорошо для приложения, но, если возможно, я хотел бы сделать это лучше. –

ответ

8

Это было проще, чем я думал; Я ожидал, что придется изменить некоторые угловые директивы, но оказывается, что это всего лишь небольшая библиотека. Я включил его перед своей угловой библиотекой и увидел мгновенные результаты в приложении для телефонных разговоров (после вызова new FastClick за документацию fastclick).

До сих пор я не могу найти недостатки этого метода. Я думал, что могут возникнуть некоторые проблемы с вызовом настройки типа document.ready (вместо того, что-то более интегрированное в Angular), но, похоже, не существует каких-либо проблем с синхронизацией или чего-то еще.

Стоит отметить, что кто-то наткнулся на этот вопрос - я использую только функциональность крана; Я считаю, что fastclick предоставляет некоторые дополнительные функции, которые я не использую для этого проекта.

+0

Вы пытались создать экземпляр FastClick внутри основного контроллера, а не на document.ready? –

+0

@ HampusAhlgren Для моего случая использования я этого не сделал. Тем не менее, возможно, вы сможете создать экземпляр его как часть вашей конфигурации углового модуля. Возможно, вы могли бы сделать это в контроллере, если хотите, может быть? Почему вы спрашиваете? –

+0

Кто-нибудь знает, какие проблемы находятся между угловыми и fastclick, как указано в [этой статье] (http://blog.ionic.io/hybrid-apps-and-the-curse-of-the-300ms-delay) от ионной ? По состоянию на сентябрь-2015 я еще не нашел конфликтов. – JoshuaDavid

13

От this page: «Угловой путь» равен .run Инициализатор FastClick в вашем Угловом JS-файле. Обязательно загрузите модуль fastclick.js перед своим угловым кодом.

HTML:

<script src="js/fastclick.js"></script> 
<script src="js/app.js"></script> 
<script src="js/filters.js"></script> 
<script src="js/controller.js"></script> 

в app.js:

app.run(function() { 
    FastClick.attach(document.body); 
}); 
+0

, это действительно сработало для меня! – hashcoder

+4

Было бы еще более дружелюбно, если бы вы ввели FastClick в качестве константы и использовали службу '$ document' :) – gustavohenke

+0

@gustavohenke Я не уверен, что именно так должны использоваться константы. – Blazemonger

Смежные вопросы