html中的smarty条件{block}不起作用

html中的smarty条件{block}不起作用,html,smarty,Html,Smarty,我正在使用smarty用父子html实现一个有条件的{block}标记实现 在我的父母身上,我有: <li class="{block name=block1}{/block}" style="{block name=block2}{/block}"> 期望值:基于$value的值,任何一个if条件块都应该执行并填充父级 发生了什么:它同时执行$value是非空还是空,并填充类和样式属性 请帮助我这里做错了什么,或者我的实现不正确 {if $value} {block na

我正在使用smarty用父子html实现一个有条件的
{block}
标记实现

在我的父母身上,我有:

<li class="{block name=block1}{/block}" style="{block name=block2}{/block}">
期望值:基于$value的值,任何一个if条件块都应该执行并填充父级
  • 发生了什么:它同时执行
    $value
    是非空还是空,并填充
    样式
    属性

    请帮助我这里做错了什么,或者我的实现不正确

    {if $value}
        {block name=block2}background-color: {$value}{/block}
    {else}
        {block name=block1}selected{/block}
    {/if}
    

    至少应使用/if来关闭if的标记。Smarty
    {blocks}
    不能与
    {if}
    条件一起使用。他们将永远被处决。在这里可以看到一个更好的解释,在底部给出了一个(我认为很难看的)解决方法


    底线是,您无法轻松实现您的目标,您必须更改您的代码。

    为输入错误道歉。我正在代码中正确关闭if。
    {if $value}
        {block name=block2}background-color: {$value}{/block}
    {else}
        {block name=block1}selected{/block}
    {/if}