mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
@@ -573,7 +573,7 @@ QWeb.addDirective({
|
|||||||
);
|
);
|
||||||
|
|
||||||
// SLOTS
|
// SLOTS
|
||||||
if (node.childElementCount) {
|
if (node.childNodes.length) {
|
||||||
const clone = <Element>node.cloneNode(true);
|
const clone = <Element>node.cloneNode(true);
|
||||||
const slotNodes = clone.querySelectorAll("[t-set]");
|
const slotNodes = clone.querySelectorAll("[t-set]");
|
||||||
const slotId = qweb.nextSlotId++;
|
const slotId = qweb.nextSlotId++;
|
||||||
@@ -592,9 +592,9 @@ QWeb.addDirective({
|
|||||||
qweb.slots[`${slotId}_${key}`] = slotFn.bind(qweb);
|
qweb.slots[`${slotId}_${key}`] = slotFn.bind(qweb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (clone.childElementCount) {
|
if (clone.childNodes.length) {
|
||||||
const t = clone.ownerDocument!.createElement("t");
|
const t = clone.ownerDocument!.createElement("t");
|
||||||
for (let child of Object.values(clone.children)) {
|
for (let child of Object.values(clone.childNodes)) {
|
||||||
t.appendChild(child);
|
t.appendChild(child);
|
||||||
}
|
}
|
||||||
const slotFn = qweb._compile(
|
const slotFn = qweb._compile(
|
||||||
|
|||||||
@@ -2981,6 +2981,27 @@ describe("t-slot directive", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("default slot work with text nodes", async () => {
|
||||||
|
env.qweb.addTemplates(`
|
||||||
|
<templates>
|
||||||
|
<div t-name="Parent">
|
||||||
|
<Dialog>sts rocks</Dialog>
|
||||||
|
</div>
|
||||||
|
<div t-name="Dialog"><t t-slot="default"/></div>
|
||||||
|
</templates>
|
||||||
|
`);
|
||||||
|
class Dialog extends Widget {}
|
||||||
|
class Parent extends Widget {
|
||||||
|
components = { Dialog };
|
||||||
|
}
|
||||||
|
const parent = new Parent(env);
|
||||||
|
await parent.mount(fixture);
|
||||||
|
|
||||||
|
expect(fixture.innerHTML).toBe(
|
||||||
|
"<div><div>sts rocks</div></div>"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
test("multiple roots are allowed in a named slot", async () => {
|
test("multiple roots are allowed in a named slot", async () => {
|
||||||
env.qweb.addTemplates(`
|
env.qweb.addTemplates(`
|
||||||
<templates>
|
<templates>
|
||||||
|
|||||||
Reference in New Issue
Block a user