ngShow从移动Safari的输入中获得焦点

时间:2015-08-25 12:11:00

标签: angularjs focus mobile-safari ng-show

我想在每次点击输入元素时切换div的可见性。我有以下HTML:

<input type="text" ng-click="show = !show"/>   
<div ng-show="show">Im visible</div>    

在移动Safari(iPad)中,输入在显示div时失去焦点。因此,无法在输入中输入文本。有时键盘会弹出一半,但会再次下降。

我试图通过每次div可见时调用焦点功能再次聚焦输入。以下是指令代码(简化):

app.directive('myDir', function(){
    return{
        link: function(scope, element, attr){
            scope.focus = function(){
                setTimeout(function() {
                    element.find('input').eq(0)[0].focus();
                }, 500);
            }
        },
        template: '<input type="text" ng-click="toggle()"/>' +   
                  '<div ng-show="show">Im visible</div>',
        controller: function($scope){
            $scope.toggle = function(){
                $scope.show = !$scope.show;
                if($scope.show) $scope.focus();
            };
        }
    };
}; 

这会把重点放在输入上,但是键盘没有出现,所以它仍然没用。

在Android设备和台式机上运行良好。

有谁知道如何解决/解决这个问题?

0 个答案:

没有答案