2017-12-07 7 views
0

は角-仮想キーボードフォーカス

var myApp = angular.module('myApp',['angular-virtual-keyboard']); 
 
myApp.controller('MyCtrl',MyCtrl); 
 

 
function MyCtrl($scope) { 
 
    document.getElementsByTagName('input')[0].focus(); 
 
}
<link href="https://rawgit.com/the-darc/angular-virtual-keyboard/master/release/angular-virtual-keyboard.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.12/angular.min.js"></script> 
 
<script src="https://rawgit.com/the-darc/angular-virtual-keyboard/master/release/angular-virtual-keyboard.js"></script> 
 

 
<body ng-app='myApp'> 
 
    <div ng-controller="MyCtrl"> 
 
    <input type='text' ng-model="textValue" ng-virtual-keyboard/> 
 
    </div> 
 
</body>

に開きません。しかし、どうすればクリックなしでキーボードを開くことができますか?私はinput.focus()を使ってみましたが動作しませんでした。

答えて

0

angleJSフレームワーク外で変更を行っているため、$ scope()で適用する必要があります。

var myApp = angular.module('myApp',['angular-virtual-keyboard']); 
myApp.controller('MyCtrl',MyCtrl); 

function MyCtrl($scope) { 
    document.getElementsByTagName('input')[0].focus(); 
    $scope.$apply(); 
} 
+1

'$スコープを持つ作業フィドルHereを見つける$(適用);'エラー '$ rootScopeあなたをスローします:INPROG '$ timeout(function {){ document.getElementsByTagName( 'input')[0] .focus(); }}' – Durga

1

だけディレクティブオートフォーカス

var myApp = angular.module('myApp',['angular-virtual-keyboard']); 
 

 
myApp.controller('MyCtrl',function($scope) { 
 
}); 
 
    
 

 

 
myApp.directive('autoFocus', function($timeout) { 
 
    return { 
 
     restrict: 'AC', 
 
     link: function(_scope, _element) { 
 
      $timeout(function(){ 
 
       _element[0].focus(); 
 
      }, 0); 
 
     } 
 
    }; 
 
});
<link href="https://rawgit.com/the-darc/angular-virtual-keyboard/master/release/angular-virtual-keyboard.css" rel="stylesheet"/> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.12/angular.min.js"></script> 
 
    <script src="https://rawgit.com/the-darc/angular-virtual-keyboard/master/release/angular-virtual-keyboard.js"></script> 
 

 
    <body ng-app='myApp'> 
 
     <div ng-controller="MyCtrl"> 
 
     <input type='text' ng-model="textValue" auto-focus ng-virtual-keyboard/> 
 
     </div> 
 
    </body>