Tapestry:访问相应javascript文件中的页面/组件属性

时间:2016-03-30 12:06:22

标签: javascript tapestry

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

如何在testComp.js中访问testProp?

我尝试过关注,但却发出错误。

console.log( ${testProp} );

我知道我可以在tml文件中执行$ {testProp},但我需要在javascript文件中访问此属性。我已经在邮件列表中搜索过但到目前为止没有运气。知道如何做到这一点吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

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