我如何将值传递给对象中的handelbar模板中的inArray助手

问题描述 投票:0回答:1

我正在使用InArray帮助程序来检查天气数组中是否存在某个值,并根据结果渲染该块。如果我对值进行硬编码,则其工作正常,如下所示。

{{#inArray this.likes "5e20c3d45df5dc29e4a403c3"}}
<button class="btn btn-primary likebtn" value="{{this._id}}">unLike</button>
{{else}}
<button class="btn btn-primary likebtn" value="{{this._id}}">like</button>
{{/inArray}}

但是我希望在渲染模板时传递对象的值。我的值在user_data.user_id中。我尝试了以下代码,但无法正常工作。

{{#inArray this.likes "{{user_data.user_id}}"}}
<button class="btn btn-primary likebtn" value="{{this._id}}">unLike</button>
{{else}}
<button class="btn btn-primary likebtn" value="{{this._id}}">like</button>
{{/inArray}}
express handlebars.js
1个回答
0
投票

创建自定义HBS帮助程序。

hbs.registerHelper("in_array", function(key, arr, options) {
    if (arr.includes(key)) return options.fn(this);
    else return options.inverse(this);
});

并像这样在您的hbs文件中使用它。

{{#in_array key arr}} 
    <h1>{{key}} is present</h1>
{{else}}
    <h1>{{key}} is not present</h1>
{{/in_array}}
© www.soinside.com 2019 - 2024. All rights reserved.