2016-11-18 5 views
4

異なるページコンテンツを読み込む角度を使用して、単一のページアプリケーション(複数)ビューを作成しました。すべてのページフォーム要素でオートフォーカス属性を使用するのではなく、アングルスクリプトを使用して、すべての画面の最初の入力要素に初期フォーカスを適用したいと思います。DOMがAngular Jsでロードされた後にJqueryを実行する方法

これを行う方法はありますか?

と我々は角度ビュー(DOM)が完全にロードされているかどうかを知るにはどうすればよい

答えて

4

メインビューから、角度表示がロードされたときにイベントを聴くことができます。

angular.module('app', []) 
 
    .controller('Controller', function($scope) { 
 

 
    angular.element(document).ready(function() { 
 
     $('form').find('input[type=text],textarea,select').filter(':visible:first').focus(); 
 
    }); 
 

 
    }) 
 

 
.controller('childController', function($scope) { 
 
    
 
    })
<!DOCTYPE html> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
    <script src="script.js"></script> 
 
</head> 
 

 
<body ng-app="app"> 
 
    <div ng-controller="Controller"> 
 
    <div> 
 
     <div ng-controller="childController"> 
 
     <form name="myForm" id="myForm"> 
 
      <label>Field1</label> 
 
      <input type="text" ng-model="first" ng-required="true" /> 
 
      <br> 
 
      <label>Field2</label> 
 
      <input type="text" ng-model="second" ng-required="is_mobile" /> 
 
     </form> 
 
     </div> 
 
    </div> 
 
    <br> 
 

 
    </div> 
 
</body> 
 

 
</html>

+0

感謝のGaurav。この例ではメインコントローラは1つしかありませんが、メインCtrlキーで複数のビューを読み込むと、すべてのビューのフォーカスが働きます。あるいは、すべての子コントローラにドキュメントを準備する必要がありますか? – klmuralimohan

+0

@klmuralimohanあなたは親コントローラ内にのみ書く必要があり、最初のフォームの最初の入力要素がビューにあり、それに焦点を当てます。あなたの必要に応じて私の答えを更新します。 –

+0

私は部分的なビューのためにこれを試しましたが、それは動作していません...私のコードが間違っていますか?ここでは、例http://fiddle.jshell.net/95wEL/42/ – klmuralimohan

関連する問題