मेरे पास मेरे दृश्य में ul
सूचियों का एक गुच्छा है जो एक jQuery यूआई का उपयोग कर रहे हैं: क्रमबद्ध निर्देशों को खींचने और ड्रॉप करने और सूची आइटमों को पुन: व्यवस्थित करने के लिए सॉर्ट करने योग्य निर्देश।Angular.js: मौजूदा स्कोप डेटा के आधार पर एनजी-दोहराना दोबारा प्रस्तुत करना संभव है?
परिवर्तन मैं jQuery यूआई के ड्रैग के माध्यम से बनाने के लिए और छोड़ रहा $apply
समारोह का उपयोग कर $scope
पर लागू होते हैं, इस हिस्से में काम करता है ...
मुद्दा अब मैं फिर भी में चल रहा है कि इन सूचियों मैं प्रदान से कुछ में ड्रॉप पर एक कस्टम रूप जिसे उपयोगकर्ता को भरने की आवश्यकता है।
उपयोगकर्ता करने का विकल्प है:
- फॉर्म भरें और जारी रखने के लिए तो को
$apply
कॉल$scope
- में डेटा बनी रहती है जो एक जो बजाय
$apply
बुलाने की बटन रद्द करें क्लिक करें जानकारी संग्रहीत करने के लिए, इस चरण में$scope
में मौजूद डेटा को प्रतिबिंबित करने के लिए पिछली ड्रैग/ड्रॉप इंटरैक्शन को प्रभावी रूप से 'मेरी प्रतिपादन' को वापस लेना चाहिए (क्योंकि नवीनतम ड्रैग पर इसका कोई प्रभाव नहीं पड़ा था)।
इस "रद्द करें" बटन का प्रभाव उपयोगकर्ता को सूची आइटम उठाए जाने से पहले और इसे किसी अन्य सूची में खींचने से पहले सबकुछ वापस कर रहा है।
मैं अपने ng-repeat
एस के 'रीफ्रेश' या 'पुनः प्रस्तुत' को कैसे बल दूं ताकि वे दृष्टि से रीफ्रेश करें और वर्तमान $scope
डेटा फिर से दिखाएं?
आम तौर पर, केवल कोणीय जेएस के अंदर किए गए डेटा मॉडल ($ स्कोप) को बदलना काम करेगा। यदि बाहर किया जाता है, तो $ scope को कॉल करें। $ लागू करें() को अपडेट/रीफ्रेश करना चाहिए। अपने रद्द करने वाले मैनिप्ल्यूशंस के अंत में, क्या आप $ स्कोप कॉल कर रहे हैं। $ $ (।), या अपने स्कोप को $ स्कोप में लपेटें। $ आवेदन करें (फ़ंक्शन() {... यहां परिवर्तन ...})? –
मैं वास्तव में jQuery आधारित निर्देश के अंदर से '$ scope.apply() 'को कॉल कर रहा हूं लेकिन यह मौजूदा डेटा के पुनः लोड/पुनः प्रस्तुत करने के लिए प्रतीत नहीं होता है। शायद क्योंकि कोणीय सोचता है कि सब कुछ ठीक वही है, मुझे इसके बारे में बताने के बिना डोम मैनिपुलेशन करने के बारे में नहीं जानते। तो मुझे वास्तव में एक 'फोर्स रीफ्रेश' कॉल की आवश्यकता है, जहां एंगुलर '$ स्कोप' राज्य के बावजूद सिर्फ अपने प्रस्तुत डेटा के ताज़ा करने को मजबूर करता है। – Jannis
ठीक है, एक संभावित कामकाज के रूप में, यदि आप ड्रैग किए गए आइटम को $ कॉल से $ दायरे में $ scope से हटाते हैं। $ लागू करें() - कोणीय को देखना चाहिए और फिर से प्रस्तुत करना चाहिए - फिर अगली पंक्ति पर (अभी भी आपके $ दायरे के अंदर $ $() कॉल लागू करें) $ timeout() का उपयोग करके इसे दोबारा जोड़ें: '$ timeout (function() {... हटाए गए आइटम को वापस $ स्कोप में जोड़ें ...}); '$ स्कोप मैनिपुलेशन जो आप करते हैं $ टाइमआउट फ़ंक्शन को दूसरी बार होने का कारण बनना चाहिए। –