extjs - Encode special characters in javascript function argument -
मैंने इस तरह एक ext js स्तंभ मॉडल को परिभाषित किया है:
नया Ext.grid.ColumnModel ({Defaults: {sortable: true}, कॉलम: [{id: 'msgId', छिपा हुआ: सच, डेटाइंडएक्स: 'msgId'}, {हैडर: 'जानकारी', xtype: 'templatecolumn', tpl: '& lt; a Href = "#" onClick = "दृश्य संदेश ({msgDetails})" & gt; संदेश विवरण देखें & lt; / a & gt; '}]}) ... .. फ़ंक्शन कॉल < कोड> ऑनक्लिक = "व्यू मेसेज ({msgDetails}) विफल हो जाता है क्योंकि msgDetails को दोहरे उद्धरण और विशेष वर्ण मिलते हैं जो मुझे विश्वास है कि फ़ंक्शन तर्क के रूप में चारों ओर पारित किए जाने से पहले किसी एन्कोडिंग की आवश्यकता होती है। यहां क्या किया जा सकता है?
संपादित करें: यह msgDetails का स्रोत है:
var रिकॉर्ड = Ext.data.Record.create ([{name: 'msgId', प्रकार: 'string' , मैपिंग: 'msgId'}, {नाम: 'msgDetails', प्रकार: 'स्ट्रिंग', मैपिंग: 'msgDetails'}]);
जब msgDetails फ़ील्ड एक स्ट्रिंग है, तो आपको इसे कम से कम उद्धृत करना चाहिए:
tpl: '& lt; a href = "#" onClick = "दृश्य संदेश (\' {msgDetails} '' & gt; संदेश विवरण देखें & lt; / a & gt; ' लेकिन नाजुक इनलाइन जावास्क्रिप्ट लिखने के बजाय आपको सेलक्लिक इवेंट में श्रोता को बाध्य करना चाहिए:
var infoColumnIndex = 1; ग्रिड.ऑन ("सेलक्लिक", फ़ंक्शन (ग्रिड, पंक्ति इंडैक्स, कोल्ड इंडेक्स) {यदि (कॉल इंडैक्स === जानकारी कॉलम इंडैक्स) {दृश्य मेसेज (ग्रिड .getStore ()। GetAt (rowIndex) .get ("msgDetails"));}}) ; या पर एक नज़र डालें।
Comments
Post a Comment