Dart Cordova + Polymer + Angular2 + FastClick

时间:2015-08-05 17:38:56

标签: cordova dart dart-polymer angular fastclick.js

将Dart Polymer的纸张元素与Angular 2一起使用时,如何消除iOS设备上约300毫秒的点击延迟?

e.g。在Angular 2组件中,如果我的HTML模板包含paper-button(click)="myFunc()",则在iOS设备中,myFunc会在这个可怕的臭名昭着的延迟后调用。

我尝试过使用FastClick.js,但是在我将它(连接到正文或特定的纸张按钮)后,该元素不再可点击,我点击它时仍能看到涟漪效果,但是该方法未被调用(在移动设备上,但在桌面浏览器中它可以正常工作),它对paper-input(s)也有相同的效果,它没有得到集中。

可以做点什么吗? 也许可以制作相当于FastClick.js的Dart / Angular2?

更新1

值得一提的是,在UIWebView(cordova)下,我无法让Angular2.dart和Polymer.dart同时工作,看起来它们不能很好地结合在一起,这也是一个阻止者,可以也可以使用一些帮助。

更新2

来源: https://github.com/aabluedragon/dart_issue_polymer_angular2_cordova

更新3

  • 白屏问题:看起来Cordova首次运行的白屏问题与Polymer有关;它与Angular2无关。
  • 点击延迟:使用Polymer的on-tap事件可以防止点击延迟,这意味着您无法使用Angular2的(点击)事件,这些事件不能很好地处理Tap作为Polymer。 / LI>

1 个答案:

答案 0 :(得分:1)

我无法使用FastClick来处理Angular 2+(在我的情况下是Angular 4),但是我找到了一个名为ng2-events的不同解决方案,它有多个功能,其中一个是支持对于角度为4的触摸事件

import {NgModule} from "@angular/core";
import {TouchEventModule} from "ng2-events/lib/touch";

@NgModule({
    imports: [TouchEventModule],
    exports: [TouchEventModule]
})
export class AppModule {}

然后在app.module.ts

<button (down)="touchAction()">Try this on mobile device</button>

然后在你的模板中:

_partition