mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
@@ -314,7 +314,11 @@ QWeb.addDirective({
|
|||||||
|
|
||||||
ctx.addLine(`extra.promises.push(def${defID});`);
|
ctx.addLine(`extra.promises.push(def${defID});`);
|
||||||
|
|
||||||
if (node.hasAttribute("t-if") || node.hasAttribute("t-else")) {
|
if (
|
||||||
|
node.hasAttribute("t-if") ||
|
||||||
|
node.hasAttribute("t-else") ||
|
||||||
|
node.hasAttribute("t-elif")
|
||||||
|
) {
|
||||||
ctx.closeIf();
|
ctx.closeIf();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1395,6 +1395,30 @@ describe("other directives with t-widget", () => {
|
|||||||
expect(normalize(fixture.innerHTML)).toBe("<div><span>hey</span></div>");
|
expect(normalize(fixture.innerHTML)).toBe("<div><span>hey</span></div>");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("t-elif works with t-widget", async () => {
|
||||||
|
class ParentWidget extends Widget {
|
||||||
|
inlineTemplate = `
|
||||||
|
<div>
|
||||||
|
<div t-if="state.flag">somediv</div>
|
||||||
|
<t t-elif="!state.flag" t-widget="child"/>
|
||||||
|
</div>`;
|
||||||
|
widgets = { child: Child };
|
||||||
|
state = { flag: true };
|
||||||
|
}
|
||||||
|
class Child extends Widget {
|
||||||
|
inlineTemplate = "<span>hey</span>";
|
||||||
|
}
|
||||||
|
|
||||||
|
const widget = new ParentWidget(env);
|
||||||
|
await widget.mount(fixture);
|
||||||
|
|
||||||
|
expect(normalize(fixture.innerHTML)).toBe("<div><div>somediv</div></div>");
|
||||||
|
|
||||||
|
widget.state.flag = false;
|
||||||
|
await nextTick();
|
||||||
|
expect(normalize(fixture.innerHTML)).toBe("<div><span>hey</span></div>");
|
||||||
|
});
|
||||||
|
|
||||||
test("t-else with empty string works with t-widget", async () => {
|
test("t-else with empty string works with t-widget", async () => {
|
||||||
class ParentWidget extends Widget {
|
class ParentWidget extends Widget {
|
||||||
inlineTemplate = `
|
inlineTemplate = `
|
||||||
|
|||||||
Reference in New Issue
Block a user