Возвращение массива из класса контроллера apex и использование в JavaScript в Salesforce - PullRequest
0 голосов
/ 06 июня 2011

Я хочу вернуть массив из пользовательского класса контроллера apex в 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 ;
     }  
}

Кто-нибудь может мне помочь.

Ответы [ 2 ]

3 голосов
/ 11 июня 2011

Вам придется динамически создавать свой javascript, метод контроллера apex не вернет вам объект javascript.Я бы использовал тег повторения visualforce что-то вроде следующего для построения массива javascript.

var SFObjectArray = new Array();
<apex:repeat value="{!arrayItems}" var="arrayItem">
SFObjectArray.push('{!arrayItem}');
</apex:repeat>
0 голосов
/ 22 августа 2012

Вы также можете использовать функцию удаленного взаимодействия 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...