Handlebars If/Else 条件输出错误值

Handlebars If/Else Condition Outputting Wrong Value

我的功能是 returns 只有存在值时才会在我的视图中使用的值。然后,我在一个视图的 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}} 代码,无论记录是否有值或为空

在我这边,它按预期工作,已经创建了示例 fiddle https://jsfiddle.net/u5x9fj98/1/
另外,您如何映射 Handlebars holders/variable?你能像上面那样试试吗fiddle(在var Data下定义dataDateRangeSlug)。