Javascript 如何在Rally应用程序中将ComboBox添加到设置装备菜单

Javascript 如何在Rally应用程序中将ComboBox添加到设置装备菜单,javascript,combobox,settings,rally,Javascript,Combobox,Settings,Rally,目前我正在开发一个显示缺陷图表的应用程序。图表将通过一系列复选框进行过滤,用户可以根据自己的需要更改这些复选框。这些复选框位于应用程序的齿轮菜单中的“设置”下。在App.js中,我有一个如下函数: getSettingsFields: function() { return [ { xtype: 'fieldcontainer', fieldLabel: 'States', defaultType:

目前我正在开发一个显示缺陷图表的应用程序。图表将通过一系列复选框进行过滤,用户可以根据自己的需要更改这些复选框。这些复选框位于应用程序的齿轮菜单中的“设置”下。在App.js中,我有一个如下函数:

getSettingsFields: function() {
    return [
        {
            xtype: 'fieldcontainer',
            fieldLabel: 'States',
            defaultType: 'checkboxfield',
            items: [
                {...}
                ...
            ]
        }
    ];
}
到目前为止,这个函数工作得很好,显示了我在代码中遗漏的项目[它们对问题并不重要]。问题是,现在我想在同一个设置页面中添加一个带有自定义值的组合框。框中应包含文本[天、周、月、季度],以进一步过滤要在图表中显示的缺陷。我尝试将getSettingsFields函数更改为以下内容:

getSettingsFields: function() {
    var myStore = Ext.create('Ext.data.Store', {
        fields: ['value', 'range'],
        data: [
            {'value':'day', 'range':'Days'}, //test data for ComboBox
            {'value':'week', 'range':'Weeks'}
        ]
    });

    return [
        {
            xtype: 'combobox',
            fieldLabel: 'Date Range',
            store: myStore,
            displayField: 'range',
            valueField: 'value'
        },
        {
            xtype: 'fieldcontainer',
            fieldLabel: 'States',
            defaultType: 'checkboxfield',
            items: [
                {...}
                ...
            ]
        }
    ];
}

现在,当我运行应用程序并单击“设置”按钮时,所有内容都消失了,甚至复选框字段也消失了。任何解释为什么这不起作用都会很有帮助

基本上你做的每件事都是正确的-你只是偶然发现了一个非常微妙的错误。潜在的问题是,由于包含存储,当设置面板尝试克隆设置字段配置数组时,会出现无限递归。以下代码将解决此问题:

{
    xtype: 'rallycombobox',
    storeConfig: {
        fields: ['value', 'range'],
        data: [
            {'value':'day', 'range':'Days'}, //test data for ComboBox
            {'value':'week', 'range':'Weeks'}
        ]
    },
    storeType: 'Ext.data.Store',
    fieldLabel: 'Date Range',
    displayField: 'range',
    valueField: 'value'
}

它基本上与您所拥有的相同,但使用了rallycombobox,并传入storeType和storeConfig来解决存储克隆问题。

您基本上都做得很正确-您刚刚偶然发现了一个非常微妙的错误。潜在的问题是,由于包含存储,当设置面板尝试克隆设置字段配置数组时,会出现无限递归。以下代码将解决此问题:

{
    xtype: 'rallycombobox',
    storeConfig: {
        fields: ['value', 'range'],
        data: [
            {'value':'day', 'range':'Days'}, //test data for ComboBox
            {'value':'week', 'range':'Weeks'}
        ]
    },
    storeType: 'Ext.data.Store',
    fieldLabel: 'Date Range',
    displayField: 'range',
    valueField: 'value'
}

它基本上与您所拥有的相同,但使用了rallycombobox,并传入storeType和storeConfig以绕过商店克隆问题。

此外,此错误在即将发布的2.0 GA版本的App SDK中已修复。此外,此错误在即将发布的2.0 GA版本的App SDK中已修复。