Я видел много примеров того, как получить доступ к переменной, принадлежащей родительскому контексту внутри цикла. Однако мне нужно не только получить доступ к переменной, но и изменить/обновить ее.
Как вы можете видеть ниже, у меня есть собственный помощник, который устанавливает переменную, но когда я пытаюсь изменить эту переменную внутри цикла, это не работает. Есть ли способ заставить его работать?
Взгляните на этот jsFiddle.
Шаблон
{{setVarWithName "test" "hello"}}
{{#each questions}}
<h3>{{title}}</h3>
<p>before update: {{../test}}</p>
{{setVarWithName "test" "goodbye"}}
<p>after update: {{../test}}</p>
<hr />
{{/each}}
Handlebars инициализируется помощником
var source = $("#template").html();
var template = Handlebars.compile(source);
var data = {
"questions": [
{"title": "Question 1"},
{"title": "Question 2"}
]
};
Handlebars.registerHelper('setVarWithName', function (name, value) {
this[name] = value;
return '';
});
$('body').append(template(data));