Интеграция Fastclick.js с AngularJS

Я создаю приложение Кордовы и время отклика кликов медленное.

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

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

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

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

Ответ 1

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

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

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

Ответ 2

От этой страницы: путь < Angular к .run инициализатору FastClick в вашем файле Angular JS. Обязательно загрузите модуль fastclick.js перед кодом Angular.

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);
});