0

我正在编写一个拉力赛应用程序,其中有一个拉力图和一个按钮。我需要通过单击按钮访问图表并修改其设置。该按钮也与拉力图位于同一应用程序容器中。

我试过分机。这个。等等。这些访问说明符不起作用。你能帮我解决这个问题吗?

示例代码:

Ext.define('CustomApp', {
    extend: 'Rally.app.App',
    componentCls: 'app',
    id: 'appid',
    launch: function () {

        var datepickerfrom = Ext.create('Ext.Container', {
            items: [{
                xtype: 'rallytextfield',
                fieldLabel: 'Enter Start Date for chart (mm/dd/yyyy): ',
                labelWidth: 150
            }],
            renderTo: Ext.getBody().dom,
            id: 'd1'
        });

        this.add(datepickerfrom);
        this.add(
                {
                     xtype: 'rallychart',
                    height: 400,
                    width: 800,
                    id: 'chart1',
                    itemId: 'chart1',
                    chartConfig: chartConfig,
                    renderTo: Ext.getBody().dom
                }
            );

button2 = {
            xtype: 'rallybutton',
            text: 'Plot Graph',
            handler: function () {
                console.clear();
                console.log("Clicking button");
     // I NEED to ACCESS the CHART HERE or EVEN the TEXTFIELD DATA HERE 

            },
            callback: function(){

            }
        };

this.add(button2);
4

2 回答 2

0

除了尼克所说的(通过 id 引用)之外,您还可以在定义它们时为每个变量创建一个变量,如下所示:

var pickerForm = this.add(datepickerfrom);
var chart = this.add({
    xtype: 'rallychart',
    height: 400,
    width: 800,
    id: 'chart1',
    itemId: 'chart1',
    chartConfig: chartConfig,
    renderTo: Ext.getBody().dom
});

然后像这样引用它们:

chart.method1();
...

这是一个示例应用程序。切换按钮显示和隐藏纸板:

Ext.define('CustomApp', {
    extend: 'Rally.app.App',
    componentCls: 'app',

    items: [{
        xtype: 'button',
        text : 'Toggle Cardboard',
        handler: function() {
            if (App.cardBoard.isHidden()) {
                App.cardBoard.show();
            } else {
                App.cardBoard.hide();
            }
        }
    }],

    launch: function() {
        App = this;
        var addNewConfig = {
            xtype: 'rallyaddnew',
            recordTypes: ['PortfolioItem/Feature', 'PortfolioItem/Initiative', 'PortfolioItem/Theme'],
            ignoredRequiredFields: ['Name', 'Project'],
            showAddWithDetails: false
        };

        App.addNew = this.add(addNewConfig);

        var cardBoardConfig = {
            xtype: 'rallycardboard',
            types: ['PortfolioItem/Feature', 'PortfolioItem/Rollup'],
            attribute: 'InvestmentCategory'
        };

        App.cardBoard = this.add(cardBoardConfig);
    }
});
于 2013-08-16T15:44:38.483 回答
0

您可以通过 itemID 引用它们。设置元素上的 itemID 后:

 this.add(
     {
         xtype: 'rallychart',
         height: 400,
         itemId: 'myChart',
         chartConfig: {//...}
//...
}

它可以用来引用元素:

this.down('#myChart')
于 2013-08-16T14:15:44.887 回答