【问题标题】:handlebars: partial variable inside custom for loop helper车把:自定义 for 循环助手中的部分变量
【发布时间】:2020-07-18 23:28:41
【问题描述】:

我从这个 SO answer 中发现了一个非常有用的 for 循环

它工作得很好,但是当我使用它时,我的代码似乎失去了传递给局部变量的上下文。有没有办法可以传递“assessmentType”变量,以便它在这个助手内部继续?我有确切的东西在这个循环之外工作得很好,但它似乎完全失去了它里面的上下文。 “this”的上下文现在属于 for 循环返回的索引号,所以我不能使用它。

// for loop helper
hbs.registerHelper('for', (from, to, block) => {
  var accum = '';
  for (var i = from; i < to; i++) { 
    accum += block.fn(i);
  }
  return accum;
});

// helper that takes in the assessment type
// and returns a path to a png file that I have
hbs.registerHelper("assessment_path", (assessmentType) => {
  if (assessmentType === "Leadership") return "leadership/Leadership";
  if (assessmentType === "Human") return "human/Human"
})
{{!-- partial --}}
{{> intro assessmentType="Leadership"}}



{{!-- where the variable is being used--}}
{{#for 0 20 }}
    <div class="page">
      <img src="/img/{{{assessment_path assessmentType}}}_intro_{{this}}.png">
    </div>
{{/for}}

【问题讨论】:

    标签: javascript handlebars.js


    【解决方案1】:

    我可以通过使用“../”来获取先前的上下文来做到这一点,我之前已经尝试过使用 @ 符号来实现这一点,就像我之前所做的那样,但没有奏效。解决方案代码

    {{#for 0 20 }}
        <div class="page">
          <img src="/img/{{{assessment_path ../assessmentType}}}_intro_{{this}}.png">
        </div>
    {{/for}}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多