如何在 Extjs 6 的 tagfield 中保存标签?

How to get to saved tag in tagfield in Extjs 6?

拜托,我正在使用 tagfield 来选择我想要的标签。但是我不知道如何在加载保存的表单后在标签字段上获取选定的标签。这是我的代码,谢谢:

xtype: 'tagfield', 
fieldLabel: 'Event hour (tagfield)', 
store:  Ext.create('Ext.data.Store', { 
            fields: ['id','name'], 
            data: [{id: 0, name: 'Battlestar Galactica'}, 
                   {id: 1, name: 'Doctor Who'}, 
                   {id: 2, name: 'Farscape'}, 
                   {id: 3, name: 'Firefly'}, 
                   {id: 4, name: 'Star Trek'}, 
                   {id: 5, name: 'Star Wars: Christmas Special'}
            ] 
        }),
displayField: 'name', 
valueField: 'id',
value: [],
queryMode: 'local', 
filterPickList: true,
delimiter:",",
multiSelect: true

selected 项作为数组存储在标记字段的值 属性 中。 您需要阅读 属性 并将 selected 值存储在某处。 为了恢复标签字段的初始状态,使其看起来像您离开时的样子,只需将先前存储的数组设置为值配置选项即可。

看到这个 fiddle 我刚刚放在一起: https://fiddle.sencha.com/#fiddle/1uhh

这应该概述如何读取(并存储在某处)selection 以及如何预先select 从您之前保存的任何地方加载内容。

为简单起见,我只是将逗号分隔的值存储在浏览器的 LocalStorage 中。这样你就可以重新加载 fiddle 来查看它是否有效。 要查看默认值是否已预selected,在标签字段中 select 不同的内容,然后重新加载或 运行 再次 fiddle。您应该看到它没有保存新的 selection 并恢复为默认值。 然后做同样的事情,但点击标签字段下方的 select 按钮。 如果您现在重新加载 selected 状态是 "preserved" 并且从 LocalStorage 预selected。