2015-11-08 16 views
5

को छोड़कर मैं angularjs-google-maps का उपयोग कर रहा हूं और मानचित्र पर मार्कर के रूप में अपने ग्राहकों पर लूप करने का प्रयास करते समय त्रुटि प्राप्त कर रहा हूं। के रूप में जब मैं इन को दूर वे ठीक से काम

<map> 
    <custom-marker ng-repeat="cust in customers" position="[ {{ cust.lat }}, {{ cust.lon }} ]"> 
    <div class="{{ cust.category }}">{{ cust.name }}</div> 
    </custom-marker> 
</map> 

त्रुटि, cust.category और cust.name से कोई लेना देना कुछ है लगता है।

Watchers fired in the last 5 iterations: [["[ cust.category , cust.name ]; newVal: 
[\"pro\",\"Fred\"]; oldVal: [\"pro\",\"Fred\"]","fn: function (context) {\n   
try {\n for(var i = 0, ii = length, part; i<ii; i++) {\n 

पूर्ण त्रुटि संदेश here:

यह त्रुटि संदेश मैं हो रही है की पहले दो लाइनों है।

इसके साथ किसी भी मदद की सराहना की जाती है। अग्रिम में धन्यवाद! कस्टम मार्कर के निर्देश है कि कोणीय-google-नक्शे का हिस्सा है के लिए

अद्यतन

कोड here है।

+0

@realpha, क्या आप अपना डेटा दिखा सकते हैं? 'Cust.category' का डेटा प्रकार क्या है? –

+1

क्या आप अपनी समस्या का एक jsfiddle स्थापित कर सकते हैं? – jjbskir

+0

@AbhilashPA 'cust.category' एक स्ट्रिंग है, जैसा कि' cust.name' है। दोनों एक वस्तु के अंदर मौजूद हैं। – realph

उत्तर

1

ऐसा लगता है जैसे पाचन चक्र एक पाश में फंस गया है। कोणीय में एक पाचन चक्र होता है जहां वे मॉडल देखते हैं (जो भी $ स्कोप पर है) और मॉडल बदलते समय दृश्यों में परिवर्तन लागू करते हैं। यदि एक पाचन चक्र में आप कुछ फ़ंक्शन निष्पादित कर रहे हैं जो एक मान को फिर से बदलता है, तो आप एक और पाचन चक्र को ट्रिगर कर रहे हैं जो उसी फ़ंक्शन को फिर से ट्रिगर करता है, मॉडल पर एक मान बदलता है और पाचन चक्रों के अनंत लूप को ट्रिगर करता है।

यह कहा गया है कि, आप अधिक सटीक होने के उत्तर के लिए अपने कस्टममार्कर निर्देश के लिए कोड जोड़ना चाहेंगे।

+0

हम्म। यह सुनिश्चित नहीं है कि ऐसा क्यों होगा। मैंने अपने प्रश्न को कोणीय-Google-मानचित्र रेपो से कस्टम-मार्कर निर्देश कोड के लिंक के साथ अपडेट किया है। – realph

+0

दस्तावेज़ों के अनुसार , यह 'इस त्रुटि को क्यों फेंक दिया जा रहा है' के सवाल का सही जवाब प्रतीत होता है? https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$digest –

0

आप कक्षा = "{{cust.category}} बाध्यकारी क्यों हैं, एनजी-क्लास का उपयोग करने का प्रयास करें। आप एनजी-दोहराने में $ इंडेक्स द्वारा ट्रैक का उपयोग भी कर सकते हैं। मुझे अपने आयनिक ऐप को चलाने पर यह त्रुटि मिल रही थी ios9.y इसे ठीक करने के लिए एक पैच जारी किया।

0

कोड इस तरह:

scope.$watch('[' + varsToWatch.join(',') + ']'... 

"[obj1.prop, obj2.prop]" संयोजन के बाद की तरह दिखता है।
अभिव्यक्तियों, जैसे $parse द्वारा विश्लेषण किया गया है और प्रत्येक पुनरावृत्ति के सरणी के नए उदाहरण के लिए स्वयं का मूल्यांकन करने का कारण बनता है, भले ही कुछ भी अंदर न हो।

आपको $watch पर कॉल करने से पहले इसे अलग/विश्लेषण करना चाहिए और एक शर्त लिखना चाहिए, जो संबंधित डेटा से केवल बदलता है वास्तव में बदला गया था।


$watch एक function(watchExp, listener, objectEquality, prettyPrintExpression)
आप मान द्वारा सरणियों तुलना करने के लिए तीसरे पैरामीटर (objectEquality) का उपयोग करने की कोशिश कर सकते हैं, लेकिन नहीं संदर्भ समानता कर रहा है।

@param {boolean=} objectEquality Compare for object equality using {@link angular.equals} instead of comparing for reference equality. 
संबंधित मुद्दे