Bootstrap3和Angular应该可以很好地一起玩....而且Bootstrap是“移动优先”我从来没有想过我会碰到这个,但我有。
我有一个模式窗口从一个按钮弹出(通过一个标准的modalService),它在我测试过的桌面浏览器上运行得很好(IE 10,11,Edge,Chrome,Opera,Safari和Firefox) )但在移动设备上失败了。我可以访问的每部手机(IOS Chrome,IOS Safari,Android Internet Browser和Android Chrome)。
它还会在移动浏览器的Chrome模拟中显示相同的失败。
在移动设备的所有情况下,单选按钮和复选框都无法识别点击/点击事件..除非我持有很长时间(比我在文章中提到的300毫秒长得多)。在几个捕获它的移动浏览器中 - 由更改产生的Angular操作不会在移动客户端上执行(但在桌面上)
<input type="radio" class="form-control" ng-Model="modalOptions.rScope.selectedItem" name="purchase" ng-value="selectedItem=item" ngClick="modalOptions.rScope.selectedItem=item">
ngTouch正被添加到页面中以促进更快的ngClick事件。
我删除了所有相关代码并创建了一个显示此内容的插件:http://plnkr.co/edit/iZV6JRnHHHRwAKO2JJ06
这是如何定义单选按钮的功能吗?如果是这样,为什么复选框显示相同的行为(我知道它目前没有ngClick它 - 但行为是相同的):
<input type="checkbox" class="form-control" width="20px" ng-model="modalOptions.rScope.xgiftfor" />
我没有收到任何错误,表明没有加载ngTouch模块...
困扰我的一件事...... ngClick状态的页面:
更强大的替代默认ngClick设计用于 触摸屏设备。大多数移动浏览器在点击后等待约300毫秒 发送click事件之前发布。这个版本立即处理它们, 然后阻止以下点击事件传播。
ngTouch是否阻止Angular继续在表单上传播更新?当 modalOption.rScope.selectedItem 更新发生时,该点击事件会产生其他后果。
或者,我是否正在寻找这种行为的原因?
[编辑]
我已更新plunk以在主页面上显示相同的数据集(由于范围略微修改的代码),并且主页面上不存在模态上的行为。在你喜欢的桌面浏览器中运行它,它在主页面上很好 - 但打开模式,它只是不起作用。
http://embed.plnkr.co/WnxArMU9VUVjDwnvueV1
有没有人知道干扰处理的模式介绍是什么(以及如何解决它)?
答案 0 :(得分:0)
我遇到了确切的问题。不幸的是,我发现ngClick directive现在deprecated没有解决方法。
弃权通知:从Angular 1.5开始,不推荐使用此指令,默认情况下禁用此指令。该指令不会得到进一步的支持,可能会从将来的版本中删除。如果您需要该指令,可以使用$touchProvider#ngClickOverrideEnabled函数启用它。我们还建议您迁移到FastClick。要了解有关300毫秒延迟的更多信息,请Telerik article提供一个很好的概述。