获取 [Object Object] 代替 Javascript visualforce 页面中的字符串



这是我的控制器类:

global class MyJSController {
    public static String objj { get; set; }
    @RemoteAction
    public static String getObject_name(){
        return objj;
    }
    @RemoteAction
    public static void setObject_name(String s){
        objj=s;
    }
    public String accountName { get; set; }
    public static Account account { get; set; }
    public static List<Order__c> order{get;set;}
    public static List<Units__C>unit{get;set;}
    public static List<Widget__c> widget{get;set;}
    public MyJSController() { 
         setObject_name('Order');
    } // empty constructor

    @RemoteAction
    global static Account getAccount(String accountName) {
        account = [SELECT id, name, phone, type, numberofemployees
                   FROM Account WHERE name = :accountName];
        return account;
    }

    @RemoteAction
    global static Order__c[] getOrder(){
        return ([SELECT id,Name,Date__c,Inbound_Orders__c,Outbound_Orders__c from Order__c]);
    }
    @RemoteAction
    global static List<Units__c> getUnits(){
        unit=[SELECT id,Name,Date__c,Inbound_Units__c,Outbound_Units__c from Units__c];
        return unit;
    }
    @RemoteAction
    global static List<Widget__c> getWidget(){
        widget=[SELECT id,Name,Date__c,Inbound_Widgets__c,Outbound_Widgets__c from Widget__c];
        return widget;
    }
}

这是我的视觉力量页面:

<apex:page controller="MyJSController">
<apex:form >
<apex:selectList id="chooseColor" value="{!object_name}" size="1" onchange="initCharts()" >
<apex:selectOption itemValue="Order" itemLabel="Order"/>
<apex:selectOption itemValue="Unit" itemLabel="Unit"/>
<apex:selectOption itemValue="Widget" itemLabel="Widget"/>
</apex:selectList>
</apex:form>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

        // Load the Visualization API and the piechart package.
        google.load('visualization', '1.0', {'packages':['corechart']});
        // Set a callback to run when the Google Visualization API is loaded.
        google.setOnLoadCallback(initCharts);
        function initCharts() {        
          // Following the usual Remoting syntax
          // [<namespace>.]<controller>.<method>([params...,] <callbackFunction>(result, event) {...}
          // namespace : abhinav
          // controller : GoogleChartsController
          // method : loadOpps

          MyJSController.getOrder(
                 function(result, event){ 
                     // load Column chart
                    var data = new google.visualization.DataTable();
        data.addColumn('string', 'Topping');
        data.addColumn('number', 'Slices');
         for(var i =0; i<result.length;i++){
                        var r = result[i];
                        data.addRow([r.Name,r.Inbound_Orders__c]); 
      }
      var data1=new google.visualization.DataTable();
      data1.addColumn('string','Topping');
      data1.addColumn('number','Slices');
      for(var i=0;i<result.length;i++)
      {
      var r=result[i];
      data1.addRow([r.Name,r.Inbound_Orders__c]);
      }
        // Set chart options
        var options = {'title':'How Much Pizza I Ate Last Night',
                       'width':400,
                       'height':300};
        // Instantiate and draw our chart, passing in some options.
        var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
        var chart1= new google.visualization.AreaChart(document.getElementById('chart_hh'));
        chart.draw(data, options);
        chart1.draw(data1,options);   }, {escape:true});

          MyJSController.getObject_name(function(event,result){
         alert('Hello'+result);
        document.getElementById('dddd').innerHTML=String.ValueOf(result);  },{escape:true});

          }

</script>
<div id="chart_div" ></div>
<div id="chart_hh"></div>
<div id="dddd">Helloojjfs</div>
</apex:page>

当我在脚本标签(脚本标签中的倒数第 4 行)中调用MyJSController.getObject_name时,结果我得到了[Object Object].但是我需要String Order我在构造函数中初始化。你能告诉我我错在哪里并纠正这个错误吗?

我相信问题是你的参数名称是倒退的。它应该是:

MyJSController.getObject_name(function(result, event)

因此,您收到的对象警报实际上是事件对象。

最新更新