2015-04-29 12 views
10

मैं कोणीय मार्ग का उपयोग कर रहा हूं। प्रत्येक पृष्ठ (मार्ग) में एक इनपुट फ़ील्ड होता है। मैंने पहले पृष्ठ पर विशेषता ऑटोफोकस का सफलतापूर्वक उपयोग किया है। जब मैं अन्य पृष्ठों पर नेविगेट करता हूं, तो इनपुट ऑटोफोकस नहीं होता है। पहले पृष्ठ पर लौटने से इनपुट फिर से ऑटोफोकस नहीं होता है। मैं अब समझता हूं कि यह क्यों काम नहीं करता है लेकिन यह जानना चाहेगा कि इसे पूरा करने का कोई तरीका है या नहीं।कोणीय मार्ग/इनपुट ऑटोफोकस

मैं कोणीय के लिए नया हूँ और मुझे यकीन है कि मैं समझता हूँ कि मैं क्या ngFocus के बारे में पढ़ा नहीं कर रहा हूँ:

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

उत्तर

9

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/

+3

सेटटाइमआउट से $ टाइमआउट को प्रतिस्थापित करने के लिए अधिक समझ होगी –

+3

सहमत हैं। मुझे यहां $ डॉकमेंट का उपयोग नहीं किया जा रहा है, इसलिए इसे इंजेक्शन देने की आवश्यकता नहीं है। –

1

मेरे मामले में प्रेरित होकर, ट्रैविस कोलिन्स का जवाब काम नहीं किया क्योंकि किसी भी तरह, तत्व आदानों की एक सरणी था ।

तो मुझे थोड़ा संशोधित संस्करण का उपयोग करना होगा। नोट, तीर कार्यों के साथ।

.directive('autofocus', ($timeout) => ({ 
    link: (scope, element: any, attrs) => { 
     if (!element.focus && element.length) { 
      element = element[0]; 
     } 
     $timeout(() => { 
      element.focus(); 
     }); 
    } 
})); 
संबंधित मुद्दे