2016-08-04 15 views
1

Ich versuche CallMethod() von einer Methode auf dem Server ausgeführt werden.Wakanda CallMethod synchronen Modus

In diesem Fall sollte ich in der Lage sein, es im synchronen Modus aufzurufen. Durch Versuch und Irrtum habe ich jedoch herausgefunden, dass in diesem Kontext (d. H. Auf dem Server) das Verfahren drei Parameter anstelle der zwei in den Dokumenten erwähnten erfordert.

Es erfordert

  • der erste Parameter eine Zeichenfolge
  • den zweiten Parameter zu einem Array
  • den dritten Parameter werden, um ein Objekt zu sein

ich recht habe versucht, ein paar Kombinationen mit diesen Parametern aber nichts scheint zu funktionieren. Gleichzeitig wirft Wakanda keinen Fehler, solange die Parameter in der richtigen Form sind.

Alle Ideen wären mehr als willkommen.

TIA

Antwort

1

Lassen Sie uns Angenommen, wir haben zwei Variable, ein den Namen des Dataclass und den zweiten den Namen der Methode der Dataclass enthält:

var myDataClass = "User"; 
var myMethod = "addUser"; 

Um das Dataclass ‚User‘ zu verwenden und die Methode ‚Anzeige aufrufen dUser 'können Sie es auf diese Weise tun:

var currentClass = ds.dataClasses[myDataClass]; 
currentClass[myMethod]() 
+0

Sorry für so lange zu antworten - ich musste für ein paar Wochen auf ein anderes Projekt umziehen und ich bin gerade erst wieder dazu gekommen. –

+0

JA !! Genau das habe ich gebraucht und es funktioniert perfekt. –

0

Verfahren Callmethod() ist eine client Methode, sollte es auf Prototypist Js-Dateien verwendet werden. versuchen, es auf einem button.click Ereignis zu verwenden:

button1.click = function button1_click (event) 
{ 
    ds.User.callMethod({method:"method1", onSuccess:myFunction, onError:failure}); 

     function myFunction(){ 
      return true; 
     } 
     function failure(){ 
      return false; 
     } 
}; 

Um Methode in einer Datei in einem synchronen Modus js Serverside aufrufen, können Sie nur den Anruf auf diese Weise machen:

var test = ds.User.method1(); 
+0

Ja, ich weiß, wie eine Methode auf dem Server aufgerufen wird. Ich möchte eine Methode nach Namen und nicht nach Referenz aufrufen. Das heißt, ich möchte den Namen einer Methode wie die folgende 'methodName =" ds. "+ ClassName +". DoSomething "' Dann rufe 'callMethod (methodName);' –

Verwandte Themen