построить строку для передачи помощнику в руле - PullRequest
0 голосов
/ 11 июля 2020

Можно ли передать сгенерированную строку помощнику в ручке

Я хотел сделать что-то вроде этого

<html lang="{{langcode}}">
  <head>
    {{#ifexists "some/path/helper-{{langcode}}.js"}}
      <script src="some/path/helper-{{langcode}}.js"></script>
    {{/ifexists}}
  </head>
  ...

Я не мог придумать способ сделать Это. Я закончил с этим

Handlebars.registerHelper('ifexists', function(options) {
  const filename = path.join(process.cwd(), replaceParams(options.hash.filename, options.hash));
  const exists = fs.existsSync(filename);
  if (exists) {
    return options.fn(this);
  } else {
    return options.inverse(this);
  }
});

function replaceParams(str, params) {
  const template = Handlebars.compile(str);
  return template(params);
}

Итак, я закончил писать шаблон следующим образом

<html lang="{{langcode}}">
  <head>
    {{#ifexists filename="some/path/helper-{{langcode}}.js" langcode=langcode}}
      <script src="some/path/helper-{{langcode}}.js"></script>
    {{/ifexists}}
  </head>
  ...

Он работает, но возможно ли сделать это верхним способом, когда я генерирую строку для передать помощника?

...