2017-10-20 10 views
1

フィールドを持つWeb /モバイルアプリケーションに検索ページがあります。ページを表示するときに、そのフィールドにフォーカスを設定して、ユーザーが単に入力を開始できるようにする必要があります。私はディレクティブを作成してそれを自分の入力フィールドにリンクしましたが、新しくキャッシュされたページにアクセスした後にのみ動作します。モバイルデバイスでページにアクセスすると、キーボードが初めて表示され、その後、キーボードが表示され、すぐに表示されます。入力フィールドには半分の時間しかフォーカスがないようです。私はこの問題に対するいくつかの答えを試したが、何も解決しなかった。入力フィールドの角1.xフォーカスは一度だけ有効

指令:

app.directive('focusField',function($timeout) { 
return { 
    link : function($scope,$element,$attr) { 
    $scope.$watch($attr.focusField,function(val) { 
     $timeout(function() { 
      val ? $element[0].focus() : 
       $element[0].blur(); 
     }); 
    }); 
    } 
}}); 

HTML:。

<input id="search-field" class="form-control" ng-model="searchText" placeholder="Search interviews..." focus-field='true' /> 

私も$( '#検索フィールドを')使用して、コントローラにフォーカスを設定しようとした(フォーカス)。それは全く同じ問題を抱えています。

ユーザーが訪問するたびにどのようにフィールドに焦点を当てることができるかに関するアイデアはありますか?

ありがとうございます!

答えて

0

入力を集中する必要がある場合は、なぜfocus-field='false'が必要ですか?私があなたの場合は、$attr$watcherを削除するだけです。フィールドは初回のみにフォーカスを取得します。

link : function($scope,$element) { 
    $timeout(function() { 
     $element[0].focus(); 
    }, 0); 
}; 

は、その後、私は本当にあなたの迅速な答えを感謝し、残念ながら、同じ問題が発生した

<input focus-field type="search" /> 
+0

のために行きます – evanbrosky

関連する問題