我使用指令对输入进行自动对焦,但它似乎并不适用于触控设备。从我的搜索中我找不到任何适用于触控设备的解决方案。
如何将此指令扩展为也适用于触控设备?
'use strict';
shoppingApp.directive('autofocus', ['$timeout', function($timeout) {
return {
restrict: 'A',
link : function($scope, $element) {
$timeout(function() {
$element[0].focus();
});
}
}
}]);
答案 0 :(得分:1)
If you're trying this on an iOS device: Apple won't let you auto focus on an element without the user explicitly expressing the intention to. This is because of a setting KeyboardDisplayRequiresUserAction
which is true for Mobile Safari.
This is a usability decision on Apple's part and at present there is no workaround for it.
答案 1 :(得分:1)
您是否在自己的应用中使用ngTouch?你的代码适合我和我如果在应用程序中未加载ngTouch,则在Android上的Chrome上自动聚焦,但如果使用ngTouch,它不仅不起作用,有时它会在手动点击输入时通过去焦点使输入完全无法对焦。 [facepalm]
我认为它的this issue with ngTouch已经修复了。更新到Angular 1.5.2为我解决了这个问题。
正如@jorisw所说,我不认为可以让自动对焦在任何iOS设备上工作 - 输入是集中的,但屏幕键盘不会出现,因此用户必须手动点击输入