Шаблоны jQuery не отображают имя класса - PullRequest
0 голосов
/ 24 января 2012

Я использую шаблоны jQuery (jquery.tmpl.js) для рендеринга контента на веб-странице и получаю неожиданный результат.

Пара свойств в моем объекте JSON:

CanMovePrevious    false
CanSkipQuestion    false

А вот фрагмент из моего шаблона, который дает неожиданный результат:

{{if CanMovePrevious}}
    <a id="previous"><span>${PreviousButtonText}</span></a>
{{/if}}
{{if CanSkipQuestion}}
    <a id="next"><span>${NextButtonText}</span></a>
{{else}}
    <a id="next" class="hideV"><span>${NextButtonText}</span></a>
{{/if}}

Я включил условие CanMovePrevious , поскольку оно работает, как и ожидалось: в случаеВ приведенных выше данных JSON элементы CanMovePrevious отображаются , а не .

Однако в случае условия CanSkipQuestion и с использованием вышеуказанного JSONданные, разметка фактически отображается как

<a id="next" class=""><span>Next</span></a>

. Это своего рода сочетание двух опций.

Если свойство CanSkipQuestion равно true , то отображаемая разметка соответствует ожидаемой, т.е.

<a id="next"><span>Next</span></a>

Если я изменю имя класса, то оно будет отображаться, как и ожидалось, т.е.

<a id="next" class="myClass"><span>Next</span></a>

Может кто-нибудь объяснить, почему имя класса "hideV""не отображается, когда CanSkipQuestion имеет значение false?

1 Ответ

1 голос
/ 27 апреля 2012

В вашем коде {{if CanSkipQuestion}} только следит за тем, чтобы CanSkipQuestion существовал , если он это сделает, он войдет внутрь и создаст HTML.

Если вы хотите, чтобы ваше условие работало со значением CanSkipQuestion, вам нужно изменить условия в шаблоне следующим образом: {{if CanSkipQuestion == true}}.

...