我正在使用 ExtJS 开发一个 Web 应用程序来构建 GUI 并通过 RESTful Web 服务与服务器通信(返回的数据格式化为 JSON 对象)。
现在我在处理包含 HTML 标签、Javascript 代码的数据时遇到问题;因为当我将这些值设置为 Ext 表单、标签、输入字段时,它们会受到这些语法的影响。
我使用此函数将数据从模型对象加载到表单:
form.loadRecord(model);
我找到了转义 HTML 和 JS 的解决方案:使用
field.setValue(Ext.util.Format.htmlDecode(data));
但我认为这对于整个应用程序来说不是一个好的解决方案,因为开发人员必须做很多事情:检查所有输入字段、标签,并将该片段放入其中。毕竟,这并不是构建快速、健壮且可维护的应用程序的好方法。
那么,能否请您帮我解决一下,以便可以在一个地方进行修改,并影响其他地方。我可以重写 AbstractComponent 的 setValue/ setLabel 吗?或者我应该在渲染数据之前对数据进行编码?以及如何解码这些数据?
(P/S:我在服务器端使用Grails框架)
太感谢了。
如果您使用 Ext.XTemplate,您可以在字段中转义 html,如下所示:
var tpl = new Ext.XTemplate(
'<p>My Field: {myField:htmlEncode}</p>'
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)