Как назначить локальную переменную в шаблоне Jquery - PullRequest
0 голосов
/ 28 февраля 2019

Ниже я пытаюсь напечатать замененные элементы, используя шаблон Jquery.Там я хочу установить переменную partHasBeenReplaced , которую позже я смогу использовать для печати этикетки и закрытия элемента <span>.

  1. Как мне установить переменную там?
  2. Как найти последний элемент типа "ЗАМЕНА"?это может быть не последний элемент массива.

                {{each(i,ref) productReferences}}
                        {{if ref.referenceType == 'REPLACEMENT'}}
                            {{partHasBeenReplaced = 'true'}}
                        {{/if}}
                {{/each}}
    
                {{if partHasBeenReplaced == 'true'}}
                    <span class="text-danger font-weight-bold pt-2">
                        This item has been replaced with:
                {{/if}}
    
                {{each(i,ref) productReferences}}
                        {{if ref.referenceType == 'REPLACEMENT'}}
                            {{= ref.target.code}} ,
                        {{/if}}
                {{/each}}
    
                {{if partHasBeenReplaced == 'true'}}
                    </span>
                {{/if}}
    

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Не существует простого решения для установки локальной переменной, как мы делаем в JSTL.Поэтому я использовал JS для заполнения окончательного флага, например partHasBeenReplaced , и установки его для данных перед передачей его в шаблон Jquery.Так что я могу напрямую использовать переменную в шаблоне.

0 голосов
/ 28 февраля 2019

Чтобы назначить данные элементу с помощью таких шаблонов, лучше использовать атрибуты.Мы можем получить доступ к атрибуту создания / обновления / удаления с помощью JavaScript.

Например, если вы хотите добавить данные для <span>, вы можете сделать это, используя -

<span id="mySpan" class="text-danger font-weight-bold pt-2" partreplaced="{{partHasBeenReplaced}}" ></span>

Доступ к ним можно получить в JavaScript, используя метод ниже -

let span = document.querySelector("#mySpan");
let partreplaced = span.getAttribute('partreplaced');

console.log(partreplaced); //will print which was set in that attribute using the templating engine.

...