मेरे पास एक ng-repeat है जो divs
की एक सूची प्रदर्शित करता है और जब मैं एक पर क्लिक करता हूं तो यह क्लिक किए गए आइटम के लिए एक aditionnal div
दिखाता है।एनजी-दोहराना: क्लिक करने और अन्य लोगों को छिपाने पर एक आइटम दिखा रहा है
यह
<div ng-repeat="item in items">
<div ng-click="showfull = !showfull">
<div>
<h1>{{item.title}}</h1>
<p>{{item.content}}</p>
</div>
</div>
<div ng-show="showfull">
<p>{{item.info}}</p>
</div>
<hr/>
</div>
मेरे कपड़े एक json आइटम की सूची से युक्त से लोड किए गए हैं काम कर रहा है और प्रत्येक आइटम इस json में false
करने के लिए डिफ़ॉल्ट attribut showfull
सेट है। यह काम कर रहा है, लेकिन अब जब कोई आइटम क्लिक किया जाता है तो मैं सूची में अन्य सभी आइटम छिपाना चाहता हूं। मैं कुछ इस तरह tryied है:
यह
<div ng-repeat="item in items">
<div ng-click="expand(item)">
<div>
<h1>{{item.title}}</h1>
<p>{{item.content}}</p>
</div>
</div>
<div ng-show="showfull">
<p>{{item.info}}</p>
</div>
<hr/>
</div>
काम नहीं कर रहा और नियंत्रक में मैं एक समारोह जोड़ दिया है:
$scope.expand = function(e) {
e.showfull = !e.showfull;
//TODO: put here a foreach logic to hide all other items
}
लेकिन फिर भी foreach तर्क के बिना इस काम नहीं कर रहा है, आइटम क्लिक करते समय अतिरिक्त div नहीं दिखाता है। मैं दो सवाल है:
मुझे लगता है इस
item
के कारणexpand
समारोह या गुंजाइश अलगाव मुद्दा किसी तरह का में "कॉपी द्वारा पारित" किया जा रहा है, लेकिन आप मुझे समझा सकता है क्यों विस्तार से?मैं अन्य सभी वस्तुओं के अतिरिक्त div छिपा कर सकते हैं कैसे जब मैं एक आइटम पर क्लिक करें और इस मद के लिए additionnal सामग्री को दिखाने के हल? क्या मुझे निर्देश करने की ज़रूरत है? नहीं
हल धन्यवाद
धन्यवाद लगता है कि काम करने लगता है, अगर मैं कोणीय दृष्टिकोण में आइटम का संदर्भ नहीं देता तो क्या होगा? कोणीय आइटम को एनजी-शो एक्शन से लिंक नहीं करते हैं? – deKajoo
@deKajoo अगर आप आइटम का संदर्भ नहीं देते हैं, तो आप '$ scope.showfull' – Vadim
के खिलाफ जा रहे हैं दूसरा प्रश्न: अन्य सभी वस्तुओं को छिपाने के लिए मुझे नियंत्रक फ़ंक्शन में 'angular.forEach' का उपयोग करना चाहिए या क्या कोई बेहतर तरीका है ? (संपादित करें: पहले उत्तर के लिए धन्यवाद) – deKajoo