2016-08-29 5 views
2

Ich arbeite an einer Anpassung für eine der Maximo Anywhere-Anwendungen, die auf der IBM MobileFirst Platform basiert.JavaScript-Funktion kann nicht von derselben Datei aufgerufen werden

Ich habe eine benutzerdefinierte JavaScript-Datei implementiert und kann die Funktionen direkt über die app.xml aufrufen. Ich kann Funktionen, die in dieser Datei enthalten sind, jedoch nicht von anderen JavaScript-Funktionen aus aufrufen. Kannst du nicht so telefonieren? Jede Hilfe wäre willkommen.

Bitte beachten Sie das folgende Beispiel. Dies würde beim Aufruf der Funktion reetNewVal von der Funktion callFromApplication fehlschlagen.

vereinfachtes Beispiel:

callFromApplication: function(eventContext){ 
    var selectedResource = eventContext.getResource().getCurrentRecord(); 
    var val1 = 5 
    var val2 = retNewVal(val1); 
    selectedResource.set('property1', val1); 
    selectedResource.set('property2', val2);  
}, 

retNewValue : function(val){ 
    return val * 2; 
}, 

Dank!

+0

Was ist die Fehlermeldung, wenn es scheitert? – Arjun

+0

Willkommen bei Stack Overflow. Sie können Ihre Frage verbessern. Bitte lesen Sie [Minimales, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve). Wenn Ihr Code Ihr konkretes Problem mit nichts Zusätzlichem zeigt, zeigen Sie Respekt denen gegenüber, die sich freiwillig melden, um Ihnen zu helfen. – zhon

Antwort

4

Es scheint mir, dass Sie die Funktion retNewValue innerhalb einer Objektdefinition aufrufen.

versuchen, ein this. vor dem Hinzufügen Umfang sicherzustellen, wird beibehalten richtig

var obj = { 
    func1notworking: function() { 
     func2("Doesn't Work"); 
    }, 
    func1working: function() { 
     this.func2("Works"); 
    }, 
    func2: function(output) { 
     alert(output); 
    } 
}; 

//obj.func1notworking(); 
obj.func1working(); 

JsFiddle

Verwandte Themen