【发布时间】: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}}
【问题讨论】: