javascript - get attribute object without using isolated scope angularjs custom directive -


मान लें कि मेरे पास यह कस्टम निर्देश है

  & lt; div ng-controller = " MyCtrl "& gt; & Lt; चुनें एनजी-मॉडल = "चयन बॉक्स" & gt; & Lt; विकल्प मान = "परीक्षण" & gt; परीक्षा & lt; / विकल्प & gt; & Lt; / चयन & gt; & Lt; my-directive चुनें = "चयन बॉक्स" & gt; & lt; / my-directive & gt; & Lt; / div & gt; MyApp.directive ('myDirective', function () {वापसी {restrict: 'ईए', फ़ंक्शन (क्षेत्र, तत्व, एट्र) {var atrib = scope। $ Eval (attr.select) console.log (atrib);}} });  

जब भी मैं कंसोल.लाग को निष्पादित करता हूं तो इसे अपरिभाषित मान के साथ वापस कर दिया जाता है। मैंने पृथक गुंजाइश के बारे में सुना है लेकिन इस पर्यावरण के लिए मैं पृथक गुंजाइश का उपयोग नहीं करना चाहता हूं ..

सवाल यह है कि मैं इन्हें कैसे प्राप्त कर सकता हूं?

UPDATE @dfsq उत्तर पर आधारित लेकिन यह अभी भी कुछ भी नहीं मिला

UPDATE जाहिरा तौर पर अगर मैं attr लपेटता हूं। दायरे का उपयोग करके चयन करें $ eval और {{}} लपेटकर मैं स्ट्रिंग का उपयोग केवल यह काम करेगा! आपके उत्तर वाले दोस्तों के लिए बहुत बहुत धन्यवाद!

सुनिश्चित नहीं है कि आप किसी भी सांत्वना लॉग आउटपुट कैसे प्राप्त करें जिस तरह से आप अपने निर्देश को परिभाषित कर रहे हैं, उसके साथ यह संभव नहीं है। आप एक तत्व के रूप में निर्देश का उपयोग कर रहे हैं, हालांकि इसकी परिभाषा यह एक विशेषता के रूप में उपयोग की जाने वाली है। इसे परिवर्तित करें:

  myApp.directive ('myDirective', फ़ंक्शन) {वापसी {प्रतिबंधित करें: 'ई', लिंक: फ़ंक्शन (स्कोप, तत्व, एट्रि) {var atrib = attr .select; console.log (atrib);}}});  

फिर, आपको प्रतिबंधित संपत्ति को "तत्व" के रूप में घोषित करना होगा। यदि आप इसे छोड़ देते हैं (यदि आप सिर्फ एक लिंक फ़ंक्शन प्रदान करते हैं तो) यह "विशेषता" डिफ़ॉल्ट हो।


Comments