我正在创建一个向其传递 ProductBO 实例的 ISML 模块。在提到的模块中,我尝试获取 OutgoingProductLinks 字段,我看到它填充了我在 BackOffice 中定义的正确值,但是当在该字段上调用 isDefined() 时,它返回 false,当我尝试在<isloop>
标签中使用该字段时它会记录错误消息说:
循环迭代器标识符“#ProductBO:ExtensibleObject:OutgoingProductLinks#”未指定有效的迭代器。
我正在处理的特定项目基于 app_sf_responsive 示例,因此它使用它的 ViewProduct 管道(它不会在其他墨盒中被覆盖)返回 ProductBO 对象,该对象在其他几个地方使用,并且在那里使用的字段通常可供使用在 ISML 中。
以下代码片段始终返回 false:
<isif condition="#isDefined(ProductBO:ExtensibleObject:OutgoingProductLinks)#" >
<h1>Outgoing product links are defined</h1>
<iselse>
<h1 style="color: red;">Outgoing product links are NOT defined </h1>
</isif>
这就是我尝试实际使用提到的字段的地方:
<isloop iterator="#ProductBO:ExtensibleObject:OutgoingProductLinks#" alias="ProductLink">
//Code that uses linked products
</isloop>
请注意,对 ProductBO 和 ExtensibleObject 的 isDefined() 检查都在工作,问题只出现在 OutgoingProductLinks
编辑:这是显示产品链接的调试器的屏幕截图