2014-07-17 12 views
6

एक अवधारणा के साथ मदद की ज़रूरत है। एक कस्टम तत्व बनाना जो मेरे डेटाबेस से डेटा प्रदर्शित करता है। दोहराए गए टेम्पलेट का उपयोग करना और यह बहुत अच्छा काम कर रहा है। रिपोर्ट को समूहीकृत किया गया है और इसलिए रिपोर्ट में प्रत्येक पंक्ति में डेटा का एक और स्तर होता है जो एक पंक्ति में ड्रिल करने के बाद प्रदर्शित होता है। तो अब मैं सॉर्ट या ग्रुपिंग परिवर्तनों को प्रतिबिंबित करने के लिए रिपोर्ट डेटा को "रीफ्रेश" करने में सक्षम होना चाहता हूं। रिपोर्ट "इंडेक्सिंग" सरणी पर आधारित है जो प्रदर्शित वास्तविक डेटा को इंगित करती है। मैं इंडेक्स सरणी में डेटा को सॉर्ट/समूह करता हूं, और इस सरणी को टेम्पलेट रीपेट के लिए सरणी के रूप में उपयोग करता हूं।बहुलक दोहराना टेम्पलेट "ताज़ा करें"

<div id="rptbody"> 
     <template repeat="{{group in groups}}"> 
      <pmg-group groupid={{group.id}} groupval={{group.groupval}} groupobj={{group.groupobj}}></pmg-group> 
     </template> 
    </div> 

तो इस उदाहरण में, समूहों सरणी अपने डेटा की चाबी की एक सूची है। इस उदाहरण में, समूह सरणी को ठीक से आदेश दिया गया है ताकि [0] में डेटा सरणी के लिए पहली अनुक्रमणिका हो, और [लंबाई -1] में अंतिम शामिल है। मेरे पास एक तरह का दिनचर्या है जो समूहों में सूचकांक मान को बदलता है, लेकिन यह समूह सरणी से आइटम जोड़ या हटा नहीं देता है।

तो मेरा प्रश्न मेरे रिज़ॉर्ट के बाद है, मैं समूह सूची को पुन: स्कैन करने के लिए टेम्पलेट को कैसे ट्रिगर करूं? मैंने पाया है कि मैं समूह = [] सेट कर सकता हूं, और फिर मेरे मास्टर इंडेक्स से समूह (समूह.push ({idx}) को फिर से लोड कर सकता हूं, और यह टेम्पलेट अपडेट करेगा, हालांकि यह मेरे लिए अपर्याप्त लगता है।

वहाँ किसी भी तरह से ताज़ा करने के लिए, या समूहों सरणी पुन: स्कैन और मूल्यों में परिवर्तन के आधार डोम पुनर्निर्माण टेम्पलेट को गति प्रदान करने है? मैं इस पर सोच रहा हूं?

विचार?

दान

+0

कुछ हद तक संबंधित प्रश्न: http://stackoverflow.com/questions/23706775/polymer-changes-not-always-flowing-through-a-filter –

उत्तर

2

In the past मुझे template repeat एस इस तरह रीफ्रेश करने के लिए मिला है:

var template = document.querySelector('template'); // Use specific selector here 
template.iterator_.updateIteratedValue(); // Force Polymer to refresh template 

यह एक हैक है, लेकिन ऐसा लगता है कि यह अभी भी काम करता है। Here's a jsbin

1

बस इस पर ठोकर खाई और पता चला कि हमें पॉलिमर तत्व डेटा मॉडल की .set विधि का उपयोग करना होगा। इस बारे में कोई भी दस्तावेज़ सीधे नहीं मिला लेकिन यह दिलचस्प https://www.polymer-project.org/1.0/docs/devguide/data-binding.html#set-path लगता है। उन हैकी चीजों से बचें क्योंकि वे उस समय एपीआई बदल सकते हैं।

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