在升级到Extjs 6之前,我们使用了一个tagfield
组件,其中displayField
是Ext.String.htmlEncode('description')
其中description
是存储记录的描述字段。此字段不仅包含简单文本,而且以:<img src="link..." style="..."/> RECORD_DESCRIPTION
的形式显示。使用htmlEncode
函数,它将实际呈现带有链接图像和记录描述的标记字段记录。
但是在升级到版本6之后,它停止工作。它现在只生成全文而不是渲染图像。它好像突然停止了工作。问题是,在一个htmlEncode
字段中,我们做同样的事情,使用完全相同的方法,所有事情都能完美地工作。他们是否为了不能显示html而破坏了ItemSelector
组件?
不管怎样,我怎样才能重现我以前做过的事?我试过使用tagfield
配置,但似乎不起作用。
最佳答案
在displayField中尝试Ext.String.htmlEncode('description')
而不是'description'
。DisplayField会影响您在选择时看到的内容,因此,它将显示您的HTML。它还影响到它如何显示您所做的选择,而且似乎没有一种方法可以在那里显示HTML。它显示为纯文本。还有一个属性labelTpl,用于格式化您已经选择的项。你可以用它来显示你已经选择的东西的名字。(LabelTpl用于显示格式化的HTML,但在ExtJs6中不显示。)假设您的存储记录还有一个“name”字段,它只是纯文本;您可以将其放在大括号中:
xtype:'tagfield',
displayField: 'description',
labelTpl: '{name}',
...
然后,在进行选择时将获得格式化的HTML,并在所选项目中获得纯文本。这是我迄今为止想出的最好的办法。
关于javascript - Extjs 6中具有HTML编码的displayField的Tagfield,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32073316/