簡體   English   中英

角度路徑/輸入自動對焦

[英]Angular Routes / input autofocus

我正在使用有角度的路線。 每個頁面(路由)都有一個輸入字段。 我已經在第一頁上成功使用了屬性autofocus。 當我導航到其他頁面時,輸入不會自動對焦。 返回第一頁不會再次自動對焦輸入。 我現在明白為什么它不起作用,但想知道是否有辦法實現這一目標。

我是Angular的新手,我不確定我理解我讀到的關於ngFocus的內容:

https://docs.angularjs.org/api/ng/directive/ngFocus

ngFocus不是你想要的。 該指令更像是一個事件觸發器。 只要用戶將焦點放在文本框中,它就會執行您的代碼。

你想要的是這個自定義指令:

angular
    .module('myApp')
    .directive('autofocus', function($timeout) {
        return {
            link: function(scope, element, attrs) {
                $timeout(function() {
                    element.focus();
                });
            }
        }
    });

靈感來自http://ericclemmons.com/angular/angular-autofocus-directive/

就我而言,Travis Collins的答案不起作用,因為不知何故,元素是一系列輸入。

所以我必須使用稍加修改的版本。 注意,帶箭頭功能。

.directive('autofocus', ($timeout) => ({
    link: (scope, element: any, attrs) => {
        if (!element.focus && element.length) {
            element = element[0];
        }
        $timeout(() => {
            element.focus();
        });
    }
}));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM