2017-10-20 67 views
1

我有一個網站/移動應用程序有一個領域的搜索頁面。當我們進入頁面時,必須在該字段上設置焦點,以便用戶可以簡單地開始輸入。我創建了一個指令並將其鏈接到我的輸入字段,但只有當我訪問帶有新緩存的頁面時,它纔有效。當您使用移動設備訪問該頁面時,鍵盤會首次出現,之後,您會看到它立即停止並立即停止。看起來輸入欄只有半秒鐘的重點。我已經嘗試了幾個這個問題的答案,但沒有解決它。Angular 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