【问题标题】:Ionic button ng-click is sometimes not recognized有时无法识别离子按钮 ng-click
【发布时间】:2017-06-19 19:12:52
【问题描述】:

我有一个 Ionic 应用程序,它包装了一个使用 Angular 的特定网络应用程序。

那里,我有一些这样的按钮:

<ion-view view-title="Orders">
  <ion-content scroll="true" overflow-scroll="true">
    <div class="row">
        <!-- some other divs with text only -->
    </div>
    <div class="row">
      <div class="col-xs-12">
        <button type="button" ng-click="vm.go('orders.new')" 
           class="button btn btn-lg btn-info">new order</button>
      </div>
    </div>
  </ion-content>
</ion-view>

当我点击/触摸按钮时,有时不会调用方法vm.go()。在 Chrome(浏览器)和 Android 中,它始终可以正常工作。即使我通过 iOS 上的普通 safari 浏览器打开页面,一切正常。

所以,这似乎是 ionic 和/或 cordova 的问题。

如果我手动将事件处理程序(使用纯 JavaScript 使用 getElementById())附加到按钮以检测触摸或鼠标事件,它们会被触发,但 ng-click 不会。如果发生这种情况并且按钮的方法未正确触发,则视图将滚动/将视图设置到顶部。

对我来说,它看起来像是某种竞争条件,因此有时会出现正确的行为(调用 ng-click),有时则不然。

使用 Ionic 1.3.2 和 cordova 6.0.0

有人对此有任何想法吗?

【问题讨论】:

  • 能否提供按钮的父元素?
  • 是的 - 更新了我的问题!

标签: javascript ios angularjs cordova ionic-framework


【解决方案1】:

有一个 div 会阻止 330 毫秒内的点击,

在“beforeenter”上添加:

angular.element(document.getElementsByClassName('click-block')).addClass('click-block-hide');

这样,wiev 将从一开始就做出响应。

【讨论】:

  • 为什么这个 div 会放在首位?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-08
  • 2015-04-21
  • 2021-11-21
  • 2017-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多