我正在使用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}}
创建自定义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}}