@@ -137,7 +137,7 @@ export function template(templateSpec, env) {
|
||||
blockParams = templateSpec.useBlockParams ? [] : undefined;
|
||||
if (templateSpec.useDepths) {
|
||||
if (options.depths) {
|
||||
depths = context !== options.depths[0] ? [context].concat(options.depths) : options.depths;
|
||||
depths = context != options.depths[0] ? [context].concat(options.depths) : options.depths;
|
||||
} else {
|
||||
depths = [context];
|
||||
}
|
||||
@@ -174,7 +174,7 @@ export function template(templateSpec, env) {
|
||||
export function wrapProgram(container, i, fn, data, declaredBlockParams, blockParams, depths) {
|
||||
function prog(context, options = {}) {
|
||||
let currentDepths = depths;
|
||||
if (depths && context !== depths[0]) {
|
||||
if (depths && context != depths[0]) {
|
||||
currentDepths = [context].concat(depths);
|
||||
}
|
||||
|
||||
|
||||
@@ -247,4 +247,27 @@ describe('Regressions', function() {
|
||||
};
|
||||
shouldCompileToWithPartials(string, [{}, {}, partials], true, 'Outer');
|
||||
});
|
||||
|
||||
it('GH-1135 : Context handling within each iteration', function() {
|
||||
var obj = {array: [1], name: 'John'};
|
||||
var helpers = {
|
||||
myif: function(conditional, options) {
|
||||
if (conditional) {
|
||||
return options.fn(this);
|
||||
} else {
|
||||
return options.inverse(this);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
shouldCompileTo(`
|
||||
{{#each array}}
|
||||
1. IF: {{#if true}}{{../name}}-{{../../name}}-{{../../../name}}{{/if}}
|
||||
2. MYIF: {{#myif true}}{{../name}}={{../../name}}={{../../../name}}{{/myif}}
|
||||
{{/each}}
|
||||
`, [obj, helpers], `
|
||||
1. IF: John--
|
||||
2. MYIF: John==
|
||||
`);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user