Ich entwickle eine Webanwendung mit ExtJS, um GUI zu erstellen und mit dem Server über RESTful Web-Service zu kommunizieren (die zurückgegebenen Daten werden als JSON-Objekte formatiert).
Jetzt habe ich Probleme bei der Verarbeitung mit Daten, die HTML-Tags, Javascript-Codes im Inneren enthält; denn wenn ich diese Werte auf Ext-Formulare, Labels, Eingabefelder setze, sind sie von diesen Syntaxen betroffen.
habe ich diese Funktion Daten aus Modellobjekt zu Form laden:Was ist der beste Weg, HTML auf ExtJS-Anwendung im Allgemeinen zu entkommen?
form.loadRecord(model);
ich eine Lösung HTML und JS gefunden habe, zu entkommen:
mitfield.setValue(Ext.util.Format.htmlDecode(data));
aber ich denke, das ist keine gute Lösung für die ganze Anwendung, weil die Entwickler so viele Dinge tun müssen: Überprüfen Sie alle Eingabefelder, Beschriftungen und legen Sie diesen Ausschnitt zu. Und schließlich ist das kein schöner Weg, um eine schnelle, robuste und wartbare Anwendung zu erstellen.
Also, könnten Sie bitte mir helfen Lösung, so dass es an einer Stelle geändert werden kann, und wirkt sich auf den Rest aus. Kann ich setValue/setLabel von AbstractComponent überschreiben? Oder sollte ich die Daten vor dem Rendern codieren? Und wie man diese Daten entschlüsselt? (P/S: Ich benutze Grails Framework auf der Serverseite) Vielen Dank.
Es scheint, dass die obige Lösung das Datumsfeld bricht, zumindest in ExtJS 4.2. Eine kleine Verbesserung wäre, vor dem Versuch, HTML zu dekodieren, zu prüfen, ob der Wert eine Zeichenkette ist. So, wie folgt aus: \t setValue: function (val) { \t \t if (typeof val == 'string') { \t \t \t val = Ext.util.Format.htmlDecode (val); \t \t \t Rückgabe this.callParent ([val]); \t} – Rocket04