我们有一个混合 Angular 应用程序,它正在经历可怕的300 毫秒延迟,即使它应该可以工作(因为已经设置了正确的元标记)。
我们尝试使用FastClick库来解决这个问题,它适用于 iOS 上的 Safari 和 Android 上的 Firefox。但在 Android 上的 Chrome 中,同样的问题仍然存在。
我们尝试通过包含Angular ngTouch模块来替换 FastClick,它解决了 Chrome 上的大部分问题。
现在由于某种原因,所有输入字段都不再起作用。触摸它们会被识别,因为字段的 CSS 发生了变化,但现在我们无法输入任何数据。长按输入会使光标出现在输入字段内,但键盘不会出现在移动设备上。表单的提交按钮也不再起作用。
此问题不仅在移动设备上可见,甚至在使用 Chrome 开发工具在本地调试时也是如此。
我们正在使用 Angular 和 Angular-touch 的 1.3.15 版本。
这是我们使用的登录表单的示例:
<form name="login_form" class="form" shake submitted="submitted" ng-submit="login(login_form.$valid)" novalidate autocapitalize="none">
<div class="form-group">
<input type="text" name="name" class="form-control" ng-model="username" required />
<label placeholder="{{'site.userName' | translate}}"></label>
<div ng-show="(login_form.name.$invalid && login_form.name.$dirty) || (login_form.name.$pristine && submitted)" class="required">
<span>{{'login.usernameRequired' | translate}}</span>
</div>
<!--<hr class="form-group-separator">-->
<input type="password" name="password" class="form-control last-visible-form-control" ng-model="credentials.password" required />
<label class="responsive" placeholder="{{'site.password' | translate}}"></label>
<div ng-show="(login_form.password.$invalid && login_form.password.$dirty) || (login_form.password.$pristine && submitted)" class="required">
<span>{{'login.passwordRequired' | translate}}</span>
</div>
<ul>
<li>
<label>{{'site.stayLoggedIn' | translate}}</label>
<span class="value">
<span class="form-check"
ng-class="{'checked':credentials.save}"
ng-model="credentials.save"
ng-click="toggleStayLoggedIn()"></span>
</span>
</li>
</ul>
</div>
<div class="form-group">
<!--<button type="submit"></button>-->
<button type="submit" class="cta green">
{{'site.login' | translate}}
<span data-svg-icon icon="circle-right-arrow"></span>
</button>
</div>
</form>