如何制作&& JSrender if语句中的运算符?

时间:2013-05-23 14:17:50

标签: javascript jquery jsrender

我在JSRender模板中需要以下if语句:

if (UltimoStr != "0,00" && BudgetStr != "0,00" && ReseveretStr != "0,00")
{
<div class="Posts"></div>  
}

但我无法弄清楚语法。

到目前为止我所拥有的是:

{{if UltimoStr != "0,00"}} and {{BudgetStr != "0,00"}} and {{ReseveretStr != "0,00"}}
<div class="Posts"></div>  
{{/if}} 

哪个不起作用。

我一直在寻找这个网站的文档,但它似乎没有多个和运营商:

https://github.com/BorisMoore/jsrender/blob/master/demos/scenarios/02_separators-scenario.html

1 个答案:

答案 0 :(得分:4)

这应该有效:

{{if UltimoStr != "0,00" && BudgetStr != "0,00" && ReseveretStr != "0,00"}}
    <div class="Posts"></div>  
{{/if}}

或者,您可以使用一个计算该表达式结果的布尔值来装饰您绑定的对象。

可以在此处找到在JsRender中工作的运算符列表:http://msdn.microsoft.com/en-us/magazine/hh975379.aspx(向下滚动到标题为“表达式”的部分)。

这是一个简单的测试:

HTML:

<body>
    <h2>Result</h2>
    <div id="expect-true"></div>
    <div id="expect-false"></div>
</body>

<script id="template" type="text/x-jsrender">
    {{:UltimoStr}}
    {{:BudgetStr }}
    {{:ReseveretStr }}
    {{if UltimoStr != "0,00" && BudgetStr != "0,00" && ReseveretStr != "0,00"}}
        <h1>True!</h1>
    {{else}}
        <h1>False!</h1>
    {{/if}}
</script>

//JS:
$(document).ready(function() {
    var trueData = {
        UltimoStr: "1,00",
        BudgetStr: "1,00",
        ReseveretStr: "1,00"
    };
    $("#expect-true").append($("#template").render(trueData));

    var falseData = {
        UltimoStr: "0,00",
        BudgetStr: "0,00",
        ReseveretStr: "0,00"
    };
    $("#expect-false").append($("#template").render(falseData));
});

似乎按预期工作:http://jsfiddle.net/FJSkh/2/