js-render если конструкция с параметром - PullRequest
0 голосов
/ 06 июня 2018

Я называю свой шаблон так:

$("#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}}>

Но какой вариант я использую, он не работает (неправильные синтаксические ошибки).

Какой правильный синтаксис для этого?Поэтому, если параметр send, он используется.В противном случае используется значение по умолчанию.

Спасибо

1 Ответ

0 голосов
/ 07 июня 2018

Синтаксис для {{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'}">
...