js-render if构造带参数

js-render if construction with parameter

我这样称呼我的模板:

$("#ChangeCurrentCycleDiv").html(
        $("#UpdateTemplate").render(CurrentCyclefields,
                {ButtonName: "btnChangeCycle",
                 Titel: "Change Current Cycle",
                 FormID: "ChangeCurrentCycleForm",
                 PanelSize: "ms-Panel ms-Panel--Max" }, 
                true)
    );

这工作正常,但现在我添加了 "PanelSize" 参数,该参数有时会被使用,有时不会。所以在我的模板中我尝试这样做:

<div {{if {{:~PanelSize}} }} class={{:~PanelSize}} {{else}}class="ms-Panel ms-Panel--xxl"{{/if}}>

但是我用的是什么变体,它不起作用(错误的语法错误)。

执行此操作的正确语法是什么?因此,如果参数是发送的,则使用它。否则使用默认值。

谢谢

{{if}} 的语法是 {{if ~PanelSize}} .... {{else}} ... {{if}}

http://www.jsviews.com/#iftag

所以你的情况是

<div {{if ~PanelSize}}class="{{:~PanelSize}}"{{else}}class="ms-Panel ms-Panel--xxl"{{/if}}>

或者更好,也许:

<div class="{{if ~PanelSize}}{{:~PanelSize}}{{else}}ms-Panel ms-Panel--xxl{{/if}}">

或者你可以使用三元表达式:

<div class="{{:~PanelSize?~PanelSize:'ms-Panel ms-Panel--xxl'}}">

或者更简单的 ||

<div class="{{:~PanelSize||'ms-Panel ms-Panel--xxl'}}">

如果您使用的是 JsViews 数据链接,则可以改为使用数据链接表达式:

<div data-link="class{:~PanelSize||'ms-Panel ms-Panel--xxl'}">