mikado icon indicating copy to clipboard operation
mikado copied to clipboard

Condition on {{...}} does not work as expected

Open Dan-Do opened this issue 5 years ago • 1 comments

<span class="nav-item">
    <a class="nav-link {{ data.active_tab == 'setting' ? 'active' : '' }}" href="/#setting">test</a>
</span>

render result, class is empty:

<span class="nav-item"><a href="/#setting" class="">test</a></span>

Modify to this:

<span class="nav-item">
    <a class="{{ data.active_tab == 'setting' ? 'nav-link active' : 'nav-link' }}" href="/#setting">test</a>
</span>

the result is rendered ok:

<span class="nav-item"><a href="/#setting" class="nav-link active">test</a></span>

Dan-Do avatar Sep 22 '20 08:09 Dan-Do

Found the problem. The template is compiled as:

"c":["'nav-link ' + data.active_tab === 'setting' ? 'active' : ''"]

Which made the + operator calculated first. Fixed by using (...):

<span class="nav-item">
    <a class="nav-link {{ (data.active_tab == 'setting' ? 'active' : '') }}" href="/#setting">test</a>
</span>

Dan-Do avatar Sep 22 '20 08:09 Dan-Do

The missing parentheses issue is gone with Mikado v0.8.x

ts-thomas avatar Jan 05 '24 13:01 ts-thomas