【问题标题】:jQuery Templates not rendering a class namejQuery模板不呈现类名
【发布时间】:2012-02-17 22:16:43
【问题描述】:

我正在使用 jQuery 模板 (jquery.tmpl.js) 在网页上呈现内容,但遇到了意想不到的结果。

我的 JSON 对象中的几个属性是

CanMovePrevious    false
CanSkipQuestion    false

这是我模板中的一个 sn-p,它产生了意想不到的结果:

{{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 元素是 not渲染。

然而,在 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>

谁能解释为什么当 CanSkipQuestion 设置为 false 时没有呈现类名“hideV”?

【问题讨论】:

    标签: jquery json jquery-templates


    【解决方案1】:

    在您的代码中, {{if CanSkipQuestion}} 只是确保 CanSkipQuestion 存在,如果它确实存在,它将进入并创建 HTML。

    如果您希望您的条件适用于 CanSkipQuestion 的值,您需要像这样 {{if CanSkipQuestion == true}} 更改模板中的条件。

    【讨论】:

    • Tak for din svar, @Danish - 这听起来很合理,但它不能解释为什么会呈现一个空的类属性。从那以后,我继续前进,但可能是 Firebug 显示空类属性的情况,即使它不在 DOM 或原始 HTML 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2020-08-02
    • 2017-08-14
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多