2013-10-12 8 views
21

इस विषय से हटकर मुद्दे की वजह से एक नए सिरे से लिखना है:AngularJS: बल फिर से प्रतिपादन/पूर्ण ताज़ा एक निर्देश टेम्पलेट

मैं एक ड्रॉपडाउन के लिए एक निर्देश में लिखा था। मैं दो बार वर्कफ़्लो के रूप में निर्देश का उपयोग कर रहा हूं। परिवर्तन की कार्रवाई के पहले ड्रॉपडाउन ट्रिगर्स दूसरे के मॉडल के ताज़ा करें। हालांकि मॉडल सही ढंग से अद्यतन करता है, दृश्य नहीं है। कई बार जब आप ड्रॉपडाउन में आइटम चुनते हैं तो दूसरा ड्रॉपडाउन नए आइटम के साथ पुरानी वस्तुओं को दिखाता है, हालांकि कोणीय मॉडल का console.log() सही है।

दृश्य में अनंत रिकर्सन है। http://plnkr.co/edit/jera17uCluGsFs8o5hRG?p=preview

मैं समझ में नहीं आया कि क्यों दृश्य पूरी तरह से ताज़ा नहीं करता है:

मेरी प्रारंभिक टेम्पलेट कोड दिखा plunkr यह है: का उपयोग करना है कि स्वयं इसके बारे में प्रत्यावर्तन करता है एक एनजी/टेम्पलेट का एक आईडी के साथ एनजी-शामिल ?

अद्यतन करने के लिए।

तरह सादर, एलेक्स

+0

क्या आप प्लंकर/जेएसफ़िल्ड स्क्रिप्ट प्रदान कर सकते हैं? –

+0

मैं plunker इसलिए जल्दी में काम करने के लिए नहीं मिल सका ... लेकिन बुनियादी कोड है ... – sp33c

+0

http://plnkr.co/edit/jera17uCluGsFs8o5hRG मान निर्देश vissible दूसरा लटकती, उस पर अद्यतन किया जाता है पहली ड्रॉपडाउन की स्थिति ... कभी भी इसका मॉडल बदलता है, मॉडल सही है, लेकिन काफी गलत प्रस्तुत करता है। मुझे लगता है कि यह अनंत घोंसले के साथ एक मुद्दा है। जो सादा कोणीय कोड के रूप में काम करता है। – sp33c

उत्तर

36

आमतौर पर मैं क्या उपयोग ui-अगर निर्देश जो मूल रूप से एक अगर बयान angularui टीम द्वारा की गई तो मैं यह तत्व पर वह यह है कि यह भी निर्देश दिया और कहूँगा कुछ है जैसे:

<div ui-if="mydata.prop" my-custom-directive></div> 

अगर myData.prop परिवर्तन या मैं संक्षिप्त शून्य तो यह पुन: लागू इसे हटाने और फिर मेरी एचटीएमएल निर्देश डोम में वापस transclude यह मेरे निर्देश फिर से eval के कारण होगा के लिए सेट इस तरह।

+3

एनजी-अगर समान है बल पुनः प्रतिपादन? – sp33c

+0

यह कैश समस्या हो सकता है, क्योंकि मैं निर्देश में एनजी/टेम्पलेट का उपयोग करता हूं? – sp33c

+1

मुझे यकीन नहीं है कि अगर ng-if उसी तरह काम करेगा यदि यह इसके लिए करता है। कोणीय ने एक अलग तरीके से अपनाया हो सकता है। असल में ui-अगर काम करता है क्योंकि यह इसे छाया को डोम करने के लिए बाहर कर रहा है और फिर इसे फिर से प्रस्तुत करने के कारण इसे वापस संकलित करता है। – btm1

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