0

我想从 visualforce 中的顶点自定义控制器类返回一个数组,并在 JavaScript 中使用该数组。

我是怎么做的:

Javascript:
   var SFObjectArray;
   function myJavascriptMethod()
   {
      SFObjectArray = myArrayItems();
   }


Apex:
<apex:actionFunction name="myArrayItems" 
                     action="{!myArrayItems}" 
                     status="mystatus" 
                     reRender="out"/>
</apex:actionFunction>

Controller:

public class MyController
{
  String[] arrayItems;

   public PageReference myArrayItems()
    {
       arrayItems = new String[]{'abc','def'};
        return null;
    }

    public String[] getItems()
     {
       return arrayItems ;
     }  
}

谁能给我一些帮助。

4

2 回答 2

3

您必须动态构建您的 javascript,apex 控制器方法不会返回您的 javascript 对象。我会使用如下所示的 visualforce 重复标记来构建 javascript 数组。

var SFObjectArray = new Array();
<apex:repeat value="{!arrayItems}" var="arrayItem">
SFObjectArray.push('{!arrayItem}');
</apex:repeat>
于 2011-06-11T11:34:54.950 回答
0

您还可以使用 javascript 远程处理功能,该功能将为您返回一个 javascript 对象/数组:

controllerLeadReviewToolSetup.asyncFunction(Parameter, function(result, event)
{
    if(event.status)
    {
        for(var i = 0; i < result.size; i++)
        {
           [result[iterator]].toString();

        }
    }
}, {escape:true});

更多关于这里http://www.salesforce.com/us/developer/docs/pages/Content/pages_js_remoting.htm

于 2012-08-22T17:04:08.487 回答