Underscore js - Uncaught SyntaxError: неожиданный токен, если - PullRequest
1 голос
/ 12 апреля 2019

Я использую интерполяцию усов:

    _.templateSettings = {
        interpolate: /\{\{(.+?)\}\}/g
    };

и для этого кода я получаю ошибку: Uncaught SyntaxError: неожиданный токен, если

<div class="d-none flex-container tip-container bg-white mt-5" data-ajax-template-empty-tip>

        <div class="tip-header border border-bottom-0 d-flex flex-row p-2">

            <div class="align-self-center mr-2">
                <a href="./{{countryName}}" target="_blank">
                    <img class="d-block" alt="" src="/images/flags/{{countryId}}.png">
                </a>
            </div>


            {{if (typeof(cityName) !== "undefined") { }}
            <i class="fas fa-arrow-left align-self-center mr-2"></i>
            <div class="align-self-center mr-2">
                <a class="badge badge-primary" role="button" href="/city/{{cityName}}" target="_blank">
                    <span>{{cityName}}</span>
                </a>
            </div>
            {{}}}

        </div>

    </div>

Без оператора if он работает хорошо, но с ним не сработает, есть идеи, что не так? Я просматривал каждый вопрос в Интернете и не мог понять его, я даже удалил интерполяцию и использовал значение по умолчанию <%, но это не так. </p>

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Я должен был добавить эти настройки, чтобы это работало:

   _.templateSettings = {
            evaluate: /\{\{(.+?)\}\}/g,
            interpolate: /\{\{=(.+?)\}\}/g,
            escape: /\{\{-(.+?)\}\}/g
        };
0 голосов
/ 12 апреля 2019

Попробуйте пробел перед if, как здесь:

{{ if (typeof(cityName) !== "undefined") { }}
...