Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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
EXTJS将数据传递到另一个JS存储_Extjs_Extjs4.2 - Fatal编程技术网

EXTJS将数据传递到另一个JS存储

EXTJS将数据传递到另一个JS存储,extjs,extjs4.2,Extjs,Extjs4.2,我是EXTJS新手。我正在使用ExtJS4.2开发应用程序。我有一个显示Unix服务器详细信息列表的网格。我有两个JS,一个是serverdetails.JS,显示网格中的所有服务器,另一个是pie.JS,显示饼图。我的要求是,当我从ServerDetails.js中的网格中选择服务器并单击按钮时,它会转到dao层以获取服务器详细信息,现在我必须将此服务器详细信息传递到饼图js Ext.data.Store对象。如何将这些服务器详细信息传递给饼图JS? 下面是我的代码。 在网格上,我有一个仪表板

我是EXTJS新手。我正在使用ExtJS4.2开发应用程序。我有一个显示Unix服务器详细信息列表的网格。我有两个JS,一个是serverdetails.JS,显示网格中的所有服务器,另一个是pie.JS,显示饼图。我的要求是,当我从ServerDetails.js中的网格中选择服务器并单击按钮时,它会转到dao层以获取服务器详细信息,现在我必须将此服务器详细信息传递到饼图js Ext.data.Store对象。如何将这些服务器详细信息传递给饼图JS? 下面是我的代码。 在网格上,我有一个仪表板按钮,显示网格中选定行的饼图。下面是代码

showDashBoard : function(button) {     
        var grid = Ext.ComponentQuery.query('serverdetailslist')[0];
        var sm = grid.getSelectionModel();
        var rs = sm.getSelection();
        if (!rs.length) {
            Ext.Msg.alert('Info', 'No Server Details Selected');
            return;
        }else{
            dashBoardServerDetail = rs[0].getData();
            var url = '/TechnologyTrackPortal/dashboard/loadDashBoard.action';

              Ext.Ajax.request({
                url     : url,
                method  : 'POST',
                jsonData: dashBoardServerDetail,    
                success: function(response){
                    var iResult = response.responseText;
                    Ext.create('resources.script.Pie');
                }
                });
        }       
    }
response.responseText以jason格式提供数据。现在我如何将这个jason dat传递到pie.js文件。下面是我的pie.js文件

Ext.onReady(function () {
  Ext.define('DashBoardModel', {
    extend: 'Ext.data.Model',
    fields: [
      {name: 'title', type: 'string'},
      {name: 'size', type: 'string'}
    ]
  });

  var store = Ext.create('Ext.data.Store', {
    storeId : 'DashBoardStoreId',
    model   : 'DashBoardModel',
    fields  : ['title', 'size'],
    autoLoad: false, 
    autoSync: true
  });

var chart = Ext.create('Ext.chart.Chart', {
    alias   : 'widget.dashBoardPieChart',
    title   : 'Technology Portal',
    store   : store,
    theme: 'Base:gradients',
     legend: {
            position: 'bottom'
        },
     series: [
     {
       type: 'pie',
       angleField: 'size',
       showInLegend: true,
       label: {
         field: 'title',
         display: 'outside',
         font: '12px Arial',
         calloutLine: true
       },
            highlight: {
                segment: {
                    margin: 20
                }
            },
            label: {
                field: 'title',
                display: 'rotate',
                contrast: true,
                font: '18px Arial'
            },
            tips: {
               trackMouse: true,
               width: 120,
               renderer: function(storeItem, item) {
               this.setTitle(storeItem.get('title') + ': ' + storeItem.get('size') + '%');
            }
          }
     }
    ]
  });

 var panel1=   Ext.create('widget.panel', {
   //  extend  : 'widget.panel',
        width: 800,
        height: 600,
        title: 'Server',
        alias   : 'widget.dashBoardForm',
        renderTo: Ext.getBody(),
        layout: 'fit',
        tbar: [{
            text: 'Save Chart',
            handler: function() {
                Ext.MessageBox.confirm('Confirm Download', 'Would you like to download the chart as an image?', function(choice){
                    if(choice == 'yes'){
                        chart.save({
                            type: 'image/png'
                        });
                    }
                });
            }
        }],
        items: chart
    });
我希望我的观点是清楚的。 谢谢
Sach

您需要将其视为一个应用程序,一个内存空间,代码分为两个.js文件,没有多大区别,它们都必须加载到主html、asp、php或其他文件中。在这个memoryspace中,如果变量和对象以前声明过,那么可以相互引用。实现您的要求的最简单的方法是使用一个存储并将其用于两个视图。因此,将存储区中的数据加载到ServerDetails.js中,并让图表使用相同的存储区


我有一些ExtJs应用程序可以做到这一点,但它们是3.3.1版的,暂时不在我的掌握之中。希望这能有所帮助。

您需要将其视为一个应用程序,一个内存空间,代码分为两个。js文件没有多大区别,它们都必须加载到主html、asp、php或其他文件中。在这个memoryspace中,如果变量和对象以前声明过,那么可以相互引用。实现您的要求的最简单的方法是使用一个存储并将其用于两个视图。因此,将存储区中的数据加载到ServerDetails.js中,并让图表使用相同的存储区

我有一些ExtJs应用程序可以做到这一点,但它们是3.3.1版的,暂时不在我的掌握之中。希望这有帮助