如何从 XML 加载 tagfield 中的数据

How to load data in tagfield from XML

我正在尝试将我的数据从 xmll 加载到标记域。但我不确定是什么失败了。谁能告诉我这里出了什么问题。 我正在为具有不同功能的标签字段使用商店。我不知道那边连debug都做不了

Ext.define('MyApp.view.main.List', {
    extend: 'Ext.form.Panel', 
    title: 'Simple Form',
    xtype: 'mainlist',
    bodyPadding: 5,
    width: 350,

    // The form will submit an AJAX request to this URL when submitted
    url: 'save-form.php',

    // Fields will be arranged vertically, stretched to full width
    layout: 'anchor',
    defaults: {
        anchor: '100%'
    },

    // The fields
    defaultType: 'textfield',
    items: [{
        fieldLabel: 'First Name',
        name: 'first',
        allowBlank: false
    },{
        xtype: 'tagfield',
        fieldLabel: 'Select a Show',
        store: this.TagStore,
        //displayField: 'show',
        valueField: 'id',
        queryMode: 'local',
        filterPickList: true,
    }],
    renderTo: Ext.getBody(),

    TagStore : function(){
        debugger;
        var combstore = Ext.create('Ext.data.Store', {
            autoLoad: true,
            fields: [{
                name: 'value',
                mapping: "ITEMID",
                type: 'string'
            }, {
                name: 'name',
                mapping: "TITLE",
                type: 'string'
            }],
            proxy: new Ext.data.HttpProxy({
                type: 'ajax',
                actionMethods: {
                    read: "GET"
                },
                url: "localhost/MyApp/resources/data.xml",
                headers: {
                    'Accept': 'application/json; charset=utf-8'
                },
                reader: {
                    type: 'xml',
                    rootProperty: 'R.D.Result'
                },
                extraParams: {
                    strIPXML: strIPXML
                }
            })
        });
    }
});

MyXml :

<EMAIL>
<E TITLE="test@test.com" ITEMID="A" />
<E TITLE="test2@rwer.wer" ITEMID="B" />
</EMAIL>

任何人都可以帮助我如何通过 xml 在 extJS

中加载数据

刚抽出时间来解决您在煎茶上的问题 fiddle,这是基本的工作代码(Atleast 看到 tagfield 存储已填充)。 已使用:Ext JS 5.1.1.451 - 灰色



    Ext.application({
    name : 'Fiddle',

    launch : function() {
      Ext.define('MyApp.view.main.List', {
    extend: 'Ext.form.Panel', 
    title: 'Simple Form',
    xtype: 'mainlist',
    bodyPadding: 5,
    width: 350,

    // The form will submit an AJAX request to this URL when submitted
    url: 'save-form.php',

    // Fields will be arranged vertically, stretched to full width
    layout: 'anchor',
    defaults: {
        anchor: '100%'
    },

    // The fields
    defaultType: 'textfield',
    items: [{
        fieldLabel: 'First Name',
        name: 'first',
        allowBlank: false
    },{
        xtype: 'tagfield',
        fieldLabel: 'Select a Show',
        store:Ext.getStore('TagStore'),
        displayField: 'name',
        valueField: 'value',
        queryMode: 'local',
        filterPickList: true,
    }],
    renderTo: Ext.getBody(),

    TagStore : function(){
        var combstore = Ext.create('Ext.data.Store', {
            autoLoad: true,
            storeId:'TagStore',
            fields: [{
                name: 'value',
                mapping: "@ITEMID",
                type: 'string'
            }, {
                name: 'name',
                mapping: "@TITLE",
                type: 'string'
            }],
            proxy: {
                type: 'ajax',
                url: "data1.xml",
                reader: {
                    type: 'xml',
                    record: 'E',
                    rootProperty:'EMAIL'
                }
            }
        });
        return combstore;
    }
});
var form = Ext.create('MyApp.view.main.List');
form.TagStore();
var store = Ext.getStore('TagStore');
form.child('[xtype=tagfield]').bindStore(store);
    }
});

data1.xml

 <?xml version="1.0" encoding="UTF-8"?>
<EMAIL>
<E TITLE="test@test.com" ITEMID="A" />
<E TITLE="test2@rwer.wer" ITEMID="B" />
</EMAIL>