Обработка частичных данных с точечной нотацией - PullRequest
0 голосов
/ 09 июля 2020

В Handlebars мне нужно перезаписать частичные данные, которые находятся в пределах объекта JS. Файл index.hbs отображает несколько частичных файлов с разными данными, но свойства модуля должны быть ограничены глобальным объектом данных. Перезапись частичных атрибутов с использованием точечной нотации не может быть скомпилирована.

Index.hbs

<body>
  {{> User }}
  {{> User user.name="laura" }} // fails to compile - how to overwrite? 
</body>

User.hbs

<div>
  Name is: {{name}}
  Location is: {{location}}
</div>

Index. js

import index from "Index.hbs";
import user_partial from "User.hbs";

data = {
  user: {
    name: "kevin", 
    location: "bar"
  }
}

Handlebars.registerPartial(user, user_partial); 
document.innerHTML = Handlebars.compile(index)(data); 

1 Ответ

0 голосов
/ 10 июля 2020

Документация говорит, что контексты передаются в партиал, как {{> myPartial myOtherContext }}, и что дополнительные параметры передаются как {{> myPartial parameter=favoriteNumber }}.

Таким образом, кажется, что вы могли бы достичь своей цели, передача user в качестве контекста и переопределений в качестве параметров. Ваш шаблон будет выглядеть следующим образом:

{{> User user }}
{{> User user name="laura" }}

Я создал скрипку для справки.

...