2014-07-07 16 views
56

में बाल तत्व ढूंढें मैं निर्देश में काम कर रहा हूं और मुझे कक्षा के नाम से अपने बच्चों को खोजने के लिए element पैरामीटर का उपयोग करने में समस्याएं आ रही हैं।AngularJS निर्देश

.directive("ngScrollList", function(){ 
    return { 
     restrict: 'AE', 
     link: function($scope, element, attrs, controller) { 

      var scrollable = element.find('div.list-scrollable'); 

      ... 
     } 
     }; 
}) 

मैं टैग नाम से इसे पा सकते हैं, लेकिन यह वर्ग के नाम से यह पता लगाने के लिए के रूप में मैं कंसोल में देख सकते हैं विफल रहता है:

element.find('div') 
[<div class=​"list-viewport">​…​</div>​,<div class=​"list-scrollable">​…​</div>​] 
element.find('div.list-scrollable') 
[] 

जो इस तरह के काम करने के सही तरीका क्या होगा? मुझे लगता है मैं jQuery में जोड़ सकते हैं पता है, लेकिन यह है कि अगर एक overkill ....

+0

यकीन है कि अगर यह [मदद करता है] (http://stackoverflow.com/questions/17283697/angularjs-how-to-find-using-jqlite)? – Pete

उत्तर

96

jQlite (कोणीय का "jQuery" पोर्ट) वर्गों द्वारा लुकअप का समर्थन नहीं करता है।

एक समाधान आपके ऐप में jQuery शामिल करना होगा।

एक और QuerySelector या QuerySelectorAll उपयोग कर रहा है:

link: function(scope, element, attrs) { 
    console.log(element[0].querySelector('.list-scrollable')) 
} 

हम element सरणी, जो HTML तत्व है में पहला आइटम का उपयोग करें। element.eq(0) वही उत्पन्न होगा।

FIDDLE

नहीं
+9

'.querySelectorAll()' के बारे में मत भूलना (एकाधिक चयन के लिए) –

27

अपने लिंक समारोह में नहीं होगा मैं सोच रहा था, ऐसा करते हैं: अपने लिंक समारोह, डॉन में भी

// link function 
function (scope, element, attrs) { 
    var myEl = angular.element(element[0].querySelector('.list-scrollable')); 
} 

, $ का उपयोग करके अपने scope चर का नाम दें। यह एक कोणीय सम्मेलन है जो कोणीय सेवाओं में बनाया गया है, और ऐसा कुछ नहीं है जिसे आप अपने चर के लिए उपयोग करना चाहते हैं।

संबंधित मुद्दे