4

AngularJS を使用する iPad で ng-click をクリックすると遅延が発生する 作成する必要がある生成ディレクティブがあります

my_app.directive 'touch', ->
  (scope, e, attr) ->
    e.fastClick (e) ->
      scope.$apply attr.fastClick

しかし、アプリケーションに fastClick を含めたにもかかわらず、fastClick が何であるかはわかりません。サービスとして作成し、ディレクティブに挿入する必要があると思いますが、どうすればよいでしょうか?

4

3 に答える 3

4

外部ライブラリなしで独自のタッピング ディレクティブを実装するのは非常に簡単です。私はそれをお勧めします。

Goodfilms は、AngularJS モバイル アプリに関するブログ投稿でこれを取り上げました

ブログ投稿から直接引用したタップ コード (Coffeescript も使用) は次のとおりです。

app.directive 'gfTap', ->
  (scope, element, attrs) ->
    tapping = false
    element.bind 'touchstart', -> tapping = true
    element.bind 'touchmove', -> tapping = false
    element.bind 'touchend', -> scope.$apply(attrs['gfTap']) if tapping
于 2013-02-03T22:15:34.483 に答える
2

AngularJS 1.1.5 には、タッチ イベントを処理する組み込みの ng-click ディレクティブが付属しています。

ドキュメント: http://code.angularjs.org/1.1.5/docs/api/ngMobile.directive:ngClick

ソース: https://github.com/angular/angular.js/blob/master/src/ngMobile/directive/ngClick.js

このようなディレクティブを自分で実装しないことを強くお勧めします - 壊れる可能性がある多くのエッジ ケース (ゴースト クリックなど) があります。処理が必要なエッジ ケースのその他の例については、上記のコードを参照してください。

于 2013-08-02T12:37:05.007 に答える