【发布时间】:2016-04-09 17:42:33
【问题描述】:
我有一个函数,它只在存在值的情况下返回要在我的视图中使用的值。然后,我在我的 if 条件中为一个视图引用此值,其中车把仅在存在值时正确显示字符串。但是,当我在单独的视图中使用 if/else 语句时,无论值是否存在,它都会导致 else 语句。为什么我只使用 If 语句就能得到正确的输出,但如果我在其中抛出 else 却得到错误的输出?
函数(如果值存在则返回字符串):
dataDateRangeSlug: function(){
var startDateValue = this.getDataValue('dataDateStart');
var startDate = new Date(startDateValue);
var momentStartDate = moment(startDate).utc().format("MM/DD/YYYY");
var endDateValue = this.getDataValue('dataDateEnd');
var endDate = new Date(endDateValue);
var momentEndDate = moment(endDate).utc().format("MM/DD/YYYY");
if (startDateValue == null){
console.log("Statement true");
} else {
console.log("Statement false");
return momentStartDate + ' - ' + momentEndDate;
}
只需使用 {{#if}}:
{{#if dataDateRangeSlug}}
<p class="card-date-range">Date Range: {{this.dataDateRangeSlug}}</p>
{{/if}}
输出:
如果dataDateRangeSlug中有null,则p标签不存在。
如果 dataDateRangeSlug 中有值,则 p 标记存在记录中的值。
使用 {{#if}} 和 {{else}}:
{{#if dataDateRangeSlug}}
<div class="form-inline date-start">
<label for="data-start-range">Data Date Start:</label>
<input type="date" id="data-date-start" name="dataDateStart" value="{{this.dataDateStartSlug}}">
</div>
<div class="form-inline date-end">
<label for="data-end-range">Data Date End:</label>
<input type="date" id="data-date-end" name="dataDateEnd" value="{{this.dataDateEndSlug}}">
</div>
{{else}}
<div class="add-remove-date-range">
<a href="#" id="date-range-add-link">Add Report Date Range</a>
<a href="#" id="date-range-remove-link">Remove Report Date Range</a>
</div>
{{/if}}
输出:
始终输出 {{else}} 代码,无论记录是否有值或为空
【问题讨论】:
标签: javascript if-statement handlebars.js