我想问变量 instd:foreach
是如何处理的?我有这种情况,即同一个对象被传递给一个函数,不管它不是应该传递的对象:
<std:foreach var="property" in="properties">
<button onclick="unhide('collapse-primitive')"/>
<span class="hidden" id="collapse-primitive">
<ul class="">
<li event:async-click="setItemPropertyType(property, 'String')">String</li>
<li event:async-click="setItemPropertyType(property, 'Boolean')">Boolean</li>
<li event:async-click="setItemPropertyType(property, 'Integer')">Integer</li>
<li event:async-click="setItemPropertyType(property, 'Long')">Long</li>
<li event:async-click="setItemPropertyType(property, 'Double')">Double</li>
<li event:async-click="setItemPropertyType(property, 'Set')">Set</li>
<li event:async-click="setItemPropertyType(property, 'List')">List</li>
<li event:async-click="setItemPropertyType(property, 'Map')">Map</li>
</ul>
</span>
</std:foreach>
上面的代码为属性列表中的每个项目生成一个跨度,问题是函数setItemPropertyType
总是获取第一个项目,而这是一个循环,因此意味着为跨度中的每个setItemPropertyType
方法传递的对象应该是不同的。如果我的解释不够,请原谅,但代码本身是不言自明的。
li
现在的问题是,为什么无论用户单击a different ,都将相同的对象传递给方法span
?
我也怀疑这是因为id="collapse-primitive"
这里导致了这种奇怪的行为。但是,我不知道如何在没有和 id 的情况下对其进行测试,因为我不知道如何在 Flavour 中执行此操作,这意味着当单击按钮时如何在代码中注入跨度,只有“隐藏”的 id它或用CSS“显示”它。好吧,这是另一个问题。
所以我的问题总结如下:
- 为什么std:foreach在事件中的每个函数中传递相同的(第一个)变量:async-click
- 您如何在按钮单击时为此注入 span 或任何 div 元素,或者 Flavour 这样做的方式是什么?