2012-06-21 11 views
9

मेरे पास कई फॉर्म इनपुट के साथ एक AngularJS पृष्ठ है।एंगुलरजेएस, मैं यूआई को किस क्षेत्र पर केंद्रित करता हूं इस पर निर्भर करता हूं?

जब कुछ इनपुट ध्यान केंद्रित करते हैं, तो मैं पृष्ठ के अन्य, मनमानी, पहलुओं को बदलना चाहता हूं।

उदाहरण के लिए, जब उपयोगकर्ता 'स्टॉक कोड' इनपुट में होता है, तो मैं लोकप्रिय स्टॉक कोड की सूची प्रदर्शित करना चाहता हूं। जब वे 'qty' फ़ील्ड में होते हैं तो मैं इन-स्टॉक मात्रा और लीड टाइम्स दिखाना चाहता हूं।

क्या कोई चर है जिसमें 'वर्तमान' इनपुट (जो फोकस है) शामिल है, या मुझे jQuery के ऑनफोकस पर वापस जाने की आवश्यकता है। (यह अब थोड़ा सा प्राचीन लगता है।)

उत्तर

10

निर्देश कैसे बनाएं? आप एक चर जब भी उपयोगकर्ता/इनपुट में प्रवेश करती है छोड़ देता है सेट कर सकते हैं, और पता चलता है कि: http://docs.angularjs.org/guide/directive

इसके अलावा, मैं गुंजाइश का उपयोग करें: http://jsfiddle.net/TZnj2/

अगर आप क्या हो रहा है के रूप में उलझन में हैं निर्देश पुस्तिका को पढ़ने के लिए सुनिश्चित करें। http://docs.angularjs.org/api/ng.$rootScope.Scope#$apply

+0

अंगुलर जेएस का इतना अधिक सुरुचिपूर्ण लगता है, हालांकि यह हासिल करने के लिए बहुत सारे कोड की तरह लगता है - क्या उन्होंने एनजी फोकस और एनजीब्लूर निर्देशों को भूल गए? –

+2

तो आप सुरुचिपूर्ण चाहते हैं इसे आजमाएं, फिर :- डी: http://jsfiddle.net/andytjoslin/3Aevb/1/। और कोणीय बस _everything_ के लिए निर्देश लिखना नहीं चाहता था, मुझे लगता है। एनजी-क्लिक और एनजी-डीब्लक्लिक इत्यादि सिर्फ निर्देश हैं, यून्नो। कुछ खास नहीं। –

+0

बस मेरी राय है लेकिन मुझे अभी भी लगता है कि jQuery इस विशेष धुंध/फोकस मामले में बेहतर पढ़ता है (मैंने इसे किसी ऑब्जेक्ट का उपयोग करके इंजीनियर किया है, अगर इसे रेखांकित किया गया हो तो कम कोड से दूर हो सकता है) http://jsfiddle.net/gregk/r2336/ –

8

ngFocus और ngBlur निर्मित निर्देशों हैं::

<input ng-focus="hasFocus = true" ng-blur="hasFocus = false" type="text"> 
<p ng-show="hasFocus">The field has focus!!</p> 

$ कि निर्देश में लागू होते हैं, यहाँ है कि क्या करता है की व्याख्या दी गई