fix issue with event binding in some cases

This commit is contained in:
Géry Debongnie
2019-02-14 10:51:29 +01:00
parent 6331d9e2ac
commit 85889d6cd2
2 changed files with 14 additions and 10 deletions
+12 -6
View File
@@ -725,12 +725,18 @@ const onDirective: Directive = {
extraArgs = args.slice(1, -1);
return "";
});
ctx.addLine(
`extra.handlers[${nodeID}] = extra.handlers[${nodeID}] || context['${handler}'].bind(owner${
extraArgs ? ", " + qweb._formatExpression(extraArgs) : ""
});`
);
ctx.addLine(`p${nodeID}.on = {${eventName}: extra.handlers[${nodeID}]};`);
if (extraArgs) {
ctx.addLine(
`p${nodeID}.on = {${eventName}: context['${handler}'].bind(owner, ${qweb._formatExpression(
extraArgs
)})};`
);
} else {
ctx.addLine(
`extra.handlers[${nodeID}] = extra.handlers[${nodeID}] || context['${handler}'].bind(owner);`
);
ctx.addLine(`p${nodeID}.on = {${eventName}: extra.handlers[${nodeID}]};`);
}
}
};