为啥 settings.split 返回 "" 而不是 <f:debug> 显示的预期数组值?

Posted

技术标签:

【中文标题】为啥 settings.split 返回 "" 而不是 <f:debug> 显示的预期数组值?【英文标题】:Why does settings.split return "" instead of the expected array value shown by <f:debug>?为什么 settings.split 返回 "" 而不是 <f:debug> 显示的预期数组值? 【发布时间】:2021-02-15 22:02:17 【问题描述】:

我正在使用 Flux 创建一个两列内容元素(基于以前的流体引导主题的内容,因为当时我正在使用它)。 在内容模板中使用变量settings.split 时,它会在&lt;f.debug&gt; 转储中显示值a。但是,在浏览器中渲染时,使用 settings.split 不会返回任何内容。 我不明白为什么它不返回a

标题为adsettings.split 的变量按预期返回a

你能给我一些建议吗? 非常感谢!

Templates/Content/TwoColumn.html 中的代码示例:

    <f:layout name="Default" />
    
    <f:section name="Configuration">
        <f:debug>_all</f:debug>
        <flux:form id="andre">
            <flux:form.sheet name="colSettings">
                <flux:field.select name="adsettings.split"
                                   items="a,b,c,d"
                                   default="a"
                                   requestUpdate="1">
                </flux:field.select>
                <flux:field.select name="settings.split"
                                   items="a,b,c,d"
                                   default="a"
                                   requestUpdate="1">
                </flux:field.select>
            </flux:form.sheet>
        </flux:form>
    </f:section>
    
    <f:section name="Preview">
    settings.split
        split
    </f:section>
    
    <f:section name="Main">
        ADSettings: adsettings.split
        Settings: settings.split
    </f:section>

截图:

版本:

错字3 10.4.9 助焊剂 9.4.2 Vhs 6.0.4

【问题讨论】:

【参考方案1】:

也许您之前在后台保存和编辑后重命名了该字段?代码是正确的,我在我的 FCE 中测试过。

解决方案: 删除元素并创建一个新元素,然后它就可以工作了。

【讨论】:

注意:<flux:field type="select" name="imageStyle" config=" renderType: 'selectSingle', items: 0:0:'Standard',1:'small', 1:0:'großes Bild',1:'big' , default: 'small' " label="Darstellung"/> 欢迎来到 Stack Overflow。请edit您的答案并包括那里的所有内容 - 代码在 cmets 中更难阅读。另外,请尽量用果断的措辞来表达答案,否则如果被误认为是问题,它们可能会被删除。 谢谢,创建一个新的还不够。这是与 TypoScript 中已定义的设置数组的交互,请参阅我的其他评论。感谢您指出弃用。如果没有提示,我不会发现这一点。 (它在 Flux 的发行说明中,我认为是 9.3 版。)【参考方案2】:

每个部分都有自己的上下文和定义的变量。通常只有您提供arguments 参数的那些。

如果您在部分中输入&lt;f:debug&gt;_all&lt;/f:debug&gt;,您将看到不同的(无)变量。


如果你想在你的部分中使用变量,你需要参数。

您要么只传输单个参数,例如:&lt;f:render section="Main" arguments="par1:'string, par2:fluidVar" /&gt;

或者您通过以下方式传输所有可用的流体变量:&lt;f:render section="Main" arguments="_all" /&gt;

【讨论】:

非常感谢。在我的示例中,我在 TypoScript setup.txt 中设置了一个数组 plugin.tx_ExtensionName.settings,然后与模板中的 settings.split 叠加。 Main-Section 只看到 TypoScript 中的数组,而不是 Configuration 部分中的数组。

以上是关于为啥 settings.split 返回 "" 而不是 <f:debug> 显示的预期数组值?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Passport 基本 api 身份验证返回 "error":"invalid_client","message":&quo

我自己组装的json数据 传到后台 会部分丢失 是为啥 js,json,后台

为啥要用invoke方法换句话说就是在啥情况下使用invoke方法?

dubbo 服务启动之后自动退出,为啥?

为啥 sizeof 被认为是运算符?

为啥context.drawImage();在火狐下不显示图像