Sto sviluppando un'applicazione Web che utilizza ExtJS per creare GUI e comunicare con il server tramite il servizio web RESTful (i dati restituiti sono formattati come oggetti JSON).
Ora si verificano problemi durante l'elaborazione con dati che contengono tag HTML, codici JavaScript all'interno; perché quando imposto questi valori su moduli Ext, etichette, campi di input, sono influenzati da tali sintassi.
Ho usato questa funzione per caricare i dati dal modello a oggetti di forma:Qual è il modo migliore per sfuggire HTML sull'applicazione ExtJS in generale?
form.loadRecord(model);
ho trovato una soluzione per sfuggire HTML e JS: usando
field.setValue(Ext.util.Format.htmlDecode(data));
ma penso che non è una buona soluzione per l'intera applicazione, perché gli sviluppatori devono fare così tante cose: rivedere tutti i campi di input, le etichette e inserirvi tale frammento. Dopotutto, non è un modo meraviglioso per costruire un'applicazione veloce, robusta e manutenibile.
Quindi, potresti aiutarmi a trovare una soluzione in modo che possa essere modificata in un unico posto e influire sul resto. Posso sovrascrivere setValue/setLabel di AbstractComponent? O dovrei codificare i dati prima di renderli? E come decodificare questi dati? (P/S: I utilizza il framework Grails sul lato server) Grazie mille.
Sembra che la soluzione sopra spezzi il campo della data, almeno lo fa in ExtJS 4.2. Un leggero miglioramento sarebbe quello di verificare se il valore è una stringa prima di provare a decodificare HTML. Quindi, in questo modo: \t setValue: function (val) { \t \t if (typeof 'stringa' val ==) { \t \t \t val = Ext.util.Format.htmlDecode (val); \t \t} \t \t return this.callParent ([val]); \t} – Rocket04