Не удается выполнить обновление до предварительно скомпилированных шаблонов Handlebars 4.7.6. - PullRequest
0 голосов
/ 21 июня 2020

Так как я обновился до Handlebars 4.7.6, я получаю сообщение об ошибке при рендеринге моих предварительно скомпилированных шаблонов. Я обновил среду выполнения js до той же версии, но мой шаблон не загружается.

Это код, пытающийся отобразить шаблон:

var template = Handlebars.templates.index;
var rendered = template(data);

и ошибка: TypeError: template не является функцией

Когда я проверяю различия в коде скомпилированного шаблона 4.7.3, я вижу, что более старые версии обрабатывают создание объекта иначе, чем более новый шаблон. В начале файла шаблоны разные:

ver: 4.7.3

!function(){var l=Handlebars.template;(Handlebars.templates=Handlebars.templates||{}).index=l({1:function(l,n,e,a,t){...

ver: 4.7.6

!function(){var l=Handlebars.template;(Handlebars.templates=Handlebars.templates||{})["handlebars.index"]=l({1:function(l,n,e,a,t){...

Если я вручную изменяю [ "handlebars.index"] для индексации, тогда мой шаблон отобразится правильно. Но я не хочу вручную изменять код шаблона каждый раз, когда компилирую новый.

Могу ли я что-то изменить в своем коде, чтобы он работал?

1 Ответ

2 голосов
/ 23 июля 2020

Как я вижу скомпилированный код версии 4.7.6, вам следует попытаться получить функцию index, как показано ниже.

var template = Handlebars.templates["handlebars.index"];
var rendered = template(data);

Сообщите мне, если это поможет.

...