我有一个用 AngularJS 编写的 cordova 移动应用程序。在我的应用程序中添加 ng-touch 会使某些 html 行为无法正常工作。此问题的一个示例是,当复选框包装在附有 ng-click 的 HTML 元素中时,该复选框不标记选中的奇怪行为。这在台式机/笔记本电脑上完美运行,问题出现在移动设备上。
Example:
这不适用于移动设备:
<div ng-click="alertSomething()">
<input type="checkbox" ng-model="data" name="data" id="data" />
<label for="data">This checkbox needs to be pressed a couple of times before it is marked as checked
in any mobile device.</label>
</div>
虽然这个可以正常工作:
<input type="checkbox" ng-model="anotherData" name="anotherData" id="anotherData" />
<label for="anotherData">This checkbox responds correctly on mobile</label>
最奇怪的部分是,当移除 ng-touch 模块时,它会按预期正常工作。请帮助我,我已经尝试解决这个问题几个小时了。
尝试在手机上打开这个插件:http://plnkr.co/edit/6LPeJP9QO6NMSpNuQqtQ?p=preview http://plnkr.co/edit/6LPeJP9QO6NMSpNuQqtQ?p=preview
我之前实际上遇到过这个问题,我所做的是创建另一个模拟点击事件的指令来替换ngTouch
's ng-click
该特定问题的版本。
叉形插头 http://plnkr.co/edit/koTyF14x3mLCLGLlJLdU?p=preview
指示
.directive('basicClick', function($parse, $rootScope) {
return {
compile: function(elem, attr) {
var fn = $parse(attr.basicClick);
return function(scope, elem) {
elem.on('click', function(e) {
fn(scope, {$event: e});
scope.$apply();
});
};
}
};
});
HTML
<div basic-click="alertSomething()">
<input type="checkbox" ng-model="data" name="data" id="data" />
<label for="data">This checkbox needs to be pressed a couple of times before it is marked as checked
in any mobile device.</label>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)