मैं AngularJS के लिए नया हूं, और मैं अपने आवेदन में jQuery custom content scroller को लागू करते समय एक समस्या से निपट रहा हूं।जब दृश्य बदल जाता है तो AngularJS से JQuery फ़ंक्शन को कॉल करने के लिए कैसे करें
मुझे स्क्रॉलर को अद्यतन करने की आवश्यकता है, जब मैं कोणीय के साथ सामग्री को अद्यतन करता हूं, इसके लिए स्क्रोलर के पास update
विधि है। मेरी समस्या यह है कि मुझे नहीं पता कि इसे कहां कॉल करना है।
<div class="scroll-list nice-scrollbars">
<ul class="gallery clearfix">
<li class="extra-alt" ng-repeat="item in relatedItems.data">
...
</li>
</ul>
</div>
मैं कोणीय के $http.post
की सफलता शाखा में अद्यतन विधि कॉल करने के कोशिश कर रहा था: सामग्री के लिए मार्कअप निम्नलिखित है
$scope.relatedItems = $http.post($scope.url, {
'filterType': 'related', 'film': id
}).success(function() {
$(".nice-scrollbars").mCustomScrollbar('update');
});
यह काम नहीं किया, मुझे लगता है कि ऐसा इसलिए है क्योंकि जब सफलता विधि को कॉल किया जाता है, दृश्य सामग्री अभी तक अपडेट नहीं की गई है (मैं इसे alert
फ़ंक्शन का उपयोग करके देख सकता हूं, डायलॉग बॉक्स बंद करने के बाद डेटा दिखाई दिया)
स्क्रोलबार के काम को करने में सक्षम एकमात्र तरीका स्क्रोलर का उपयोग कर रहा था लाभ सामग्री में परिवर्तन (ये विकल्प स्क्रॉलबार के लिए पारित कर रहे हैं) को देखने के लिए CED संपत्ति:
var scrollbarOpts = {
scrollButtons:{
enable:true
},
advanced:{
updateOnContentResize: true
//@TODO: get rid of this, correctly find where to call update method
}
}
यह, बुरा व्यवहार है के रूप में इस विकल्प पूरी स्क्रिप्ट का प्रदर्शन कम कर देता है। मैं जानना चाहता हूं कि आवश्यकतानुसार डीओएम अपडेट करने के लिए जरूरी jQuery विधियों को कॉल करने के लिए सही जगह कहां है, या AngularJS में सही ढंग से किए गए परिवर्तनों को देखने के लिए बाध्यकारी कैसे है?
धन्यवाद। पहला उदाहरण पर्याप्त था, हालांकि एक छोटे से परिवर्तन के साथ - किसी भी तरह से jQuery चयनकर्ता काम नहीं कर रहा था, लेकिन मैंने निर्देश से 'तत्व' var का उपयोग किया, और यह काम कर रहा है। चीयर्स! –
मैंने कोशिश की और इसे काम नहीं कर सका। मुझे टाइमर का उपयोग करना पड़ा। – Ztyx
यह मेरे लिए भी काम नहीं करता है: / – electricfeel1979