Рули динамические встроенные частичные - PullRequest
0 голосов
/ 28 сентября 2019

У меня есть несколько строк разметки, которые я хотел бы избежать во внешнем частичном файле, но он должен отображаться на основе значения переменной, либо IN_PROCESS, либо DONE.Я могу создавать встроенные партиалы и отображать их на основе статических имен:

{{#* inline  "IN_PROCESS"}}IN_PROCESS{{/inline}}
{{#* inline  "DONE"}}DONE{{/inline}}

{{> IN_PROCESS }}
{{> DONE }}

Однако я не могу понять, как объединить это с синтаксисом динамических значений (), который я прочитал о здесь ,

Так что-то вроде

{{> (data.status) }}
     └─────────┘ data.status would be either 'IN_PROCESS' or 'DONE'

Возможно ли это?

1 Ответ

1 голос
/ 28 сентября 2019

Полагаю, вам нужно что-то похожее на это:

{{#* inline  "IN_PROCESS"}}IN_PROCESS{{/inline}}
{{#* inline  "DONE"}}DONE{{/inline}}

{{> (lookup . 'status')}}

{{> (lookup . 'status')}} будет просматривать объект JSON data на предмет атрибута status.То есть, если вы передаете свои данные примерно так:

var template = Handlebars.compile(**your source**);
$('body').append(template(data));

Пример JSFiddle

Точка представляет объект данных, который был передан в шаблонфункция.Функция шаблона не может узнать, каково было имя объекта:

template(inputData){
    // This function wouldn't know that inputData.status was originally data.status
}
var data = {status: "DONE"};
template(data);

Точка, следовательно, используется для указания «шаблону» при поиске родителя, что inputData должен быть родителем, а мы ищем«статус» как ребенок.Я считаю, что это польза от этого.На самом деле я не могу найти какую-либо документацию относительно его использования, но все поиски, похоже, имеют формат lookup parent child, поэтому я предполагаю, что это обоснование.

...