मेरे पास एक ही साझा पर्यवेक्षक के साथ संपत्तियों की एक मात्रा है जो मैं देखना चाहता हूं। मान लें, मैं संशोधन इतिहास को ट्रैक करना चाहता हूं।पॉलिमर ने पर्यवेक्षक साझा किया: मूल संपत्ति प्राप्त करना
myObserver: function(oldValue, newValue) {}
जब से मैं परिवर्तन पर नज़र रखना चाहते हैं, मैं संपत्ति बदल का नाम पता करने की जरूरत है: दुर्भाग्य से, मानक बहुलक पर्यवेक्षक कॉलबैक, according to the documentation, एक अनाड़ी प्रोटोटाइप है। myObserver
के arguments
रिवर्स इंजीनियरिंग द्वारा, मुझे आश्चर्य की बात है कि, Arguments[3]
प्रकार का कार्य तीसरा तर्क है। तो कोड^डब्ल्यू नीचे WooDoo-जादू चाल करना होगा:
myObserver: function() {
if (arguments.length > 2) { // observer called by polymer
var args = arguments[2];
var idx = args[1].length - 1; // sic! index of changed is stored in index
var prop = args[2][idx * 2 + 1][0];
var val = args[0][idx];
console.log("Property [" + prop + "] got new value: " + val);
}
...
}
समझदार और लालसा समझदार रहने के लिए होने के नाते, मैं जानना चाहता हूँ मैं पर्यवेक्षक से बदली हुई विशेषता नाम पाने के लिए और अधिक मिलनसार तरह से याद किया है कि क्या करना चाहते हैं।
@ebidel और @robdodson क्या आप उस पर कुछ प्रकाश डालेंगे? क्या arguments[2]
नवीनतम संस्करणों में समर्थित होगा? क्या परिवर्तनों पर प्रतिक्रिया करने का कोई बेहतर तरीका है?
अग्रिम धन्यवाद।
हाँ, धन्यवाद, मैं 'MutationObserver' के बारे में पता है। मैं 'DOMSubtreeModified' ईवेंट श्रोता का भी उपयोग कर सकता था। सवाल _Polymer_ द्वारा प्रदान किए गए पहले से मौजूद ईवेंट हैंडलर का उपयोग करने के बारे में था। – mudasobwa