如何比较Handlebars.java中的相等和其他逻辑条件。 例如:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-steps/1.1.0/jquery.steps.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="/css/result-light.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-steps/1.1.0/jquery.steps.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"></script>
<body>
<div id="pasosTemplate">
<h3>Información Básica</h3>
<section>
<form class="form-horizontal" id="basico">
<div class="form-group">
<label class="col-lg-2">Nombre Template</label>
<div class="col-lg-6">
<input type="text" class="form-control" placeholder="Nombre Template" id="nombre-temp" name="nombre-temp" >
</div>
</div>
<div class="form-group">
<label class="col-lg-2">Descripción Template</label>
<div class="col-lg-6">
<input type="text" class="form-control" placeholder="Descripción Template" id="descripcion-temp" name="descripcion-temp">
</div>
</div>
<div class="form-group">
<label class="col-lg-2">Objetivo de Optimización</label>
<div class="col-lg-6">
<select class="form-control" id="objetivo-o" name="objetivo-o">
<option value=" ">Selecciona un objetivo...</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-lg-2">Establecer cantidad Mínima y Máxima de clientes</label>
<div class="col-lg-2">
<input type="number" class="form-control" placeholder="Mínimo" id="min-cli" name="min-cli">
</div>
<div class="col-lg-2">
<input type="number" class="form-control" placeholder="Máximo" id="max-cli" name="max-cli">
</div>
</div>
<div class="form-group">
<label class="col-lg-2">Celdas de Comunicación</label>
<div class="col-lg-2">
<input type="number" placeholder="Cantidad celdas" class="form-control" id="cantidad-celdas" name="cantidad-celdas">
</div>
</div>
</form>
</section>
<h3>Segmentación</h3>
<section>
<form class="form-horizontal" id="segmentacion" action="#">
<div class="col-lg-12" id="segmentaciones">
</div>
<div class="form-group">
<label class="col-lg-2">Estimación de Clientes alcanzados</label>
<div class="col-lg-4">
<input type="text" readonly class="form-control" id="clientes-alcanzados">
</div>
</div>
</form>
</section>
</div>
</body>
欢迎使用或不使用{{#if template_version == "v2" }}
//do something
{{ else }}
//do something
{{/if}}
的解决方案。
答案 0 :(得分:2)
你需要编写一个帮助来进行==
检查,因为Handlebars不会提供开箱即用的==
构造。
你可以这样写一个简单的帮手:
Handlebars.registerHelper('if_eq', function(a, b, opts) {
if(a == b) // Or === depending on your needs
return opts.fn(this);
else
return opts.inverse(this);
});
您可以为帮助者指定任何名称。我给了if_eq
。
现在,在您的模板中:
{{#if_eq template_version "v2" }}
//do something
{{ else }}
//do something
{{/if_eq}}
如果你想要所有操作员的助手,你可以这样做:
Handlebars.registerHelper({
eq: function (v1, v2) {
return v1 === v2;
},
ne: function (v1, v2) {
return v1 !== v2;
},
lt: function (v1, v2) {
return v1 < v2;
},
gt: function (v1, v2) {
return v1 > v2;
},
lte: function (v1, v2) {
return v1 <= v2;
},
gte: function (v1, v2) {
return v1 >= v2;
},
and: function (v1, v2) {
return v1 && v2;
},
or: function (v1, v2, opts) {
return v1||v2;
}
});