Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 引用在主应用程序中绘制的元素_Javascript_Rally_Appsdk2 - Fatal编程技术网

Javascript 引用在主应用程序中绘制的元素

Javascript 引用在主应用程序中绘制的元素,javascript,rally,appsdk2,Javascript,Rally,Appsdk2,我正在写一个Rally应用程序,其中有一个rallychart和一个按钮。 我需要访问图表并通过单击按钮修改其设置。该按钮也与rallychart位于同一应用程序容器中 我试过这个。等 这些访问说明符不起作用。你能帮我做这个吗 示例代码: Ext.define('CustomApp', { extend: 'Rally.app.App', componentCls: 'app', id: 'appid', launch: function () {

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

我试过这个。等 这些访问说明符不起作用。你能帮我做这个吗

示例代码:

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);

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

 this.add(
     {
         xtype: 'rallychart',
         height: 400,
         itemId: 'myChart',
         chartConfig: {//...}
//...
}
它可用于引用元素:

this.down('#myChart')

除了Nick所说的(通过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);
    }
});

您也可以将其添加为id,不是吗?只有这样它才会是唯一的?我试着设置一个变量。var datepickerfrom=Ext.create('Ext.Container',{items:[{xtype:'rallytexfield',fieldLabel:'输入图表的开始日期(mm/dd/yyyyy):',labelWidth:150}],renderTo:Ext.getBody().dom,id:'d1});var dpf=this.add(datepickerfrom);然后在游戏中将其用作dpf.getValue(),但我得到以下错误:未捕获类型错误:当我尝试按上面指定的按钮单击操作访问对象时,对象[Object Object]没有方法“getValue”,而不是
dpf.getValue()
,您是否尝试过
DatePickPerform.getValue()
?去掉renderTo选项-当您调用this.add时,您告诉它将其添加到应用程序中。如果这不起作用,你可能想试试尼克的方法,这是另一种方法
App.down('myChart').getValue()
,这对我做
App.grid=App.down('#displayArea')。add({…})
然后调用方法,如
App.grid.ishiden()