angularjs - JqLite का उपयोग कर classname द्वारा तत्व का चयन कैसे करें?





angularjs-directive (4)


angualr jqulite नामक jquery के हल्के संस्करण का उपयोग करता है जिसका अर्थ है कि इसमें jQuery की सभी सुविधाएं नहीं हैं। jquery से आप क्या उपयोग कर सकते हैं इसके बारे में angularjs दस्तावेज़ों में एक संदर्भ दिया गया है। docs.angularjs.org/api/ng/function/angular.element

आपके मामले में आपको आईडी या कक्षा के नाम के साथ एक div खोजने की जरूरत है। कक्षा के नाम के लिए आप उपयोग कर सकते हैं

var elems =$element.find('div') //returns all the div's in the $elements
    angular.forEach(elems,function(v,k)){
    if(angular.element(v).hasClass('class-name')){
     console.log(angular.element(v));
}}

या आप क्वेरी चयनकर्ता द्वारा बहुत सरल तरीके से उपयोग कर सकते हैं

angular.element(document.querySelector('#id'))

angular.element(elem.querySelector('.classname'))

यह jQuery के रूप में लचीला नहीं है लेकिन क्या

मैं अपने Angular.js ऐप से jquery को हल्का बनाने के लिए, और इसके बजाय कोणीय के jqLite डाल करने की कोशिश कर रहा हूँ। लेकिन ऐप खोज ('# आईडी') का भारी उपयोग करता है और ('classname ') ढूंढता है, जो jqLite द्वारा समर्थित नहीं है, केवल' टैग नाम '(दस्तावेज़ीकरण के अनुसार)

आश्चर्य हुआ कि आपको क्या लगता है इसे बदलने का सबसे अच्छा तरीका होगा। कस्टम एचटीएमएल टैग बनाने के बारे में मैंने सोचा एक दृष्टिकोण है। उदाहरण के लिए: बदलें
<span class="btn btn-large" id="add-to-bag">Add to bag</span>

सेवा मेरे

<a2b style="display:none;"><span class="btn btn-large" >Add to bag</span></a2b>

तथा

$element.find('#add-to-bag') 

सेवा मेरे

$element.find('a2b')

कोई विचार? अन्य विचार?

धन्यवाद

लियोर




अगर elem.find() आपके लिए काम नहीं कर रहा है, तो जांचें कि आप कोणीय स्क्रिप्ट से पहले JQuery स्क्रिप्ट शामिल कर रहे हैं ....




अनिवार्य रूप से, और @ केविन-बी द्वारा नोट किया गया:

// find('#id')
angular.element(document.querySelector('#id'))

//find('.classname'), assumes you already have the starting elem to search from
angular.element(elem.querySelector('.classname'))

नोट: यदि आप इसे अपने नियंत्रकों से ऐसा करना चाहते हैं तो आप डेवलपर्स में "कंट्रोलर का सही ढंग से उपयोग करना" अनुभाग देख सकते हैं और उचित प्रस्तुतियों (जैसे <a2b ...>) में अपनी प्रस्तुति तर्क को दोबारा प्रतिक्रिया दे सकते हैं। ।




मुझे थोड़ा देर हो चुकी है .. लेकिन मुझे auto-focus का उपयोग करके एक आसान समाधान मिला .. यह एक dialog पॉप अप करते समय बटन या अन्य के लिए उपयोगी हो सकता है:

<button auto-focus ng-click="func()">ok</button>

यदि आप स्पेस या एंटर क्लिक on बटन दबा देना चाहते हैं तो यह ठीक होना चाहिए।







angularjs angularjs-directive jqlite