2016-01-03 4 views
9

पर लागू नहीं है, मैं अपनी वेबसाइट के लिए नेविगेशन लेआउट को एकजुट करना चाहता हूं, इसलिए मैंने नेविगेशन के लिए कोड रखने वाली एक अलग HTML फ़ाइल बनाई है। मैं एक जे एस का उपयोग गतिशील रूप से फ़ाइल को लोड करने:सामग्री डिज़ाइन लाइट जेएस गतिशील रूप से लोड की गई HTML फ़ाइल

$("#navigation").load("/navigation/navigation.html", function() { 
    $.getScript('/material.min.js'); 
}); 

समस्या यह है कि material.min.js इस एचटीएमएल अंदर गतिशील लोड घटकों के लिए मार डाला नहीं प्राप्त करता है और मैं कुछ महत्वपूर्ण कार्यक्षमता खो देते हैं। मुझसे इसका समाधान किस प्रकार होगा?

उत्तर

2

आधिकारिक docs से:

सामग्री डिज़ाइन लाइट स्वचालित रूप से रजिस्टर और पृष्ठ लोड पर एमडीएल वर्गों के साथ चिह्नित सभी तत्वों को प्रस्तुत करना होगा। हालांकि, जहां आप डीओएम तत्वों को गतिशील रूप से बना रहे हैं, आपको upgradeElement फ़ंक्शन का उपयोग करके नए तत्वों को पंजीकृत करने की आवश्यकता है।

तो सामग्री.जेएस स्क्रिप्ट को फिर से लोड करना इसे निष्पादित नहीं करेगा। लेकिन आप पूरे प्रयोग किए गए मार्कअप या विशेष तत्वों को लागू करके upgradeElements के साथ कुछ प्रयोग कर सकते हैं।

+0

मैंने प्रत्येक वंशज तत्व पर कोशिश की लेकिन इसका कोई परिणाम नहीं है। मुझे लगता है कि मैंने जिथब पर कहीं पढ़ा है कि 'अपग्रेड एलिमेंट' लेआउट कक्षाओं के लिए काम नहीं करता है, लेकिन मैं गलत हो सकता हूं ... – niko

+0

ईमानदारी से, मैंने अभी देखा है कि नीचे दिए गए उदाहरण को यहां दिया गया है: http://www.getmdl.io /started/index.html#dynamic काम नहीं करता है अगर आप प्रदत्त कोडपेन लिंक खोलते हैं ... – niko

+0

बस एमडीएल सहयोगियों में से एक का दिलचस्प वाक्यांश मिला: _ कम से कम अब तक, एमडीएल का उद्देश्य स्थिर सामग्री-भारी वेबसाइटों के लिए है। तो गतिशील रूप से टैब जोड़ने का समर्थन निश्चित रूप से समर्थन के मामले में प्रथम श्रेणी का नागरिक नहीं है ._ आप पूरे एचटीएमएल को सर्वर की तरफ क्यों नहीं बनाते? –

17

जांचें कि componentHandler लोड हो गया है, और लोड के बाद तत्वों को अपग्रेड करने का प्रयास करें।

if(!(typeof(componentHandler) == 'undefined')){ 
    componentHandler.upgradeAllRegistered(); 
} 

How the Component Handler works

इस संक्षेप में सभी पंजीकृत घटकों के ऊपर चला जाता है। प्रदान की गई सीएसएस कक्षा के साथ सभी नोड्स के लिए क्वेरीज़। उन पर लूप्स और उन्हें एक-एक करके तत्काल करता है। जब नोड पर अपग्रेड किया जाता है, तो नवीनीकृत ऑब्जेक्ट डेटासेट में जोड़ा जाता है। इस ऑब्जेक्ट में घटक classAsString गुणों की एक अल्पविराम से अलग सूची शामिल है, यह पहचानने के लिए कि कौन से उन्नयन किए गए हैं।

+0

यह मेरे लिए काम करता है, धन्यवाद! – Rroman

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