Tapestry : 在相应的 javascript 文件中访问 page/component 属性

Tapestry : Access page/component property in corresponding javascript file

假设我有一个名为 testComp 的组件,它有一个字符串 属性 testProperty。 testComp.java对应的是一个js文件testComp.js

如何在 testComp.js 中访问 testProp?

我试过跟随,但出现错误。

console.log( ${testProp} );

我知道我可以在 tml 文件中执行 ${testProp} 但我需要在 javascript 文件中访问此 属性。我已经在邮件列表中进行了搜索,但到目前为止还没有成功。知道怎么做吗?

试试这个:

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);
}