2016-03-30 21 views
0

Angenommen, ich habe eine Komponente namens testComp, die eine Zeichenfolge Eigenschaft testProperty hat. Entspricht testComp.java, ist eine js-Datei testComp.jsTapestry: Zugriff auf Seite/Komponente Eigenschaft in entsprechenden Javascript-Datei

Wie kann ich auf testProp in testComp.js zugreifen?

Ich versuchte folgendes, aber es gibt einen Fehler.

console.log(${testProp}); 

Ich weiß, dass ich tun kann, $ {} testProp in tml-Datei, aber ich brauche diese Eigenschaft zuzugreifen in Javascript-Datei. Ich habe in der Mailingliste gesucht, aber bisher kein Glück. Irgendeine Idee, wie es gemacht werden kann?

Antwort

1

Versuchen Sie folgendes:

testComp.java

@Inject 
private JavaScriptSupport javaScriptSupport; 

@AfterRender 
private void after() throws Exception { 
    JSONObject arguments = new JSONObject(); 
    arguments.put("testProperty", this.testProperty); 
    javaScriptSupport.addInitializerCall("testComp", arguments); 
} 

testComp.js

Tapestry.Initializer.testComp = function (json) { 
    new testComp(json); 
}; 


function testComp(json){ 
    alert(json.testProperty); 
}