【发布时间】:2014-01-17 09:35:07
【问题描述】:
我在使用 widgetVar 时遇到问题,而它的名称是动态生成的。我们如何正确地调用这样的小部件?组件代码:
<cc:attribute name="id" required="true" type="java.lang.String" />
...
<cc:implementation>
<p:selectOneRadio widgetVar="widgetVariable#{cc.attrs.id}" id="#{cc.attrs.id}" required="false" immediate="#{cc.attrs.immediate}"
value="#{cc.attrs.value}">
<p:ajax event="click" oncomplete="checkRadio()"/>
<cc:insertChildren/>
</p:selectOneRadio>
<script type="text/javascript">
/* <![CDATA[ */
function checkRadio() {
var widgetVariable = widgetVariable#{cc.attrs.id}; //HERE PROBLEM
widgetVariable.dosmth();
}
/* ]]> */
</script>
</cc:implementation>
这就是它的工作原理,但是当我在页面上使用这个组件的许多实例时,widgetwar 有时会变得疯狂并为组件的许多实例制作 javascript。
编辑:一切正常。 无论如何,我有一个新问题。我在这个 .js 文件中创建了一些全局状态变量。
var state = -1;
function checkRadio() {
var widgetVariable = widgetVariable#{cc.attrs.id}; //HERE PROBLEM
widgetVariable.dosmth(state);
}
但是每个状态应该只针对一个复合实例,atm每个复合都使用这个var,有什么想法吗?
【问题讨论】:
-
id的外观如何?它包含哪些字符? -
任何,一些字母/数字“myCompoennt”“something2”等
-
所以没有特殊字符,只有字母数字字符?
-
是的,我正在测试 atm Balus 解决方案,brb。
标签: javascript jsf primefaces composite-component