Как я могу передать значение InArray помощник в шаблоне Handelbar от объекта - PullRequest
0 голосов
/ 21 января 2020

Я использую помощник 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}}

1 Ответ

0 голосов
/ 21 января 2020

Создание пользовательских помощников 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}}
...