mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
imp: qweb engine can be initialized with templates
This commit is contained in:
+5
-1
@@ -182,7 +182,7 @@ export class QWeb {
|
|||||||
templates: { [name: string]: CompiledTemplate<VNode> } = {};
|
templates: { [name: string]: CompiledTemplate<VNode> } = {};
|
||||||
directives: Directive[] = [];
|
directives: Directive[] = [];
|
||||||
|
|
||||||
constructor() {
|
constructor(data?: string) {
|
||||||
[
|
[
|
||||||
forEachDirective,
|
forEachDirective,
|
||||||
escDirective,
|
escDirective,
|
||||||
@@ -196,6 +196,10 @@ export class QWeb {
|
|||||||
refDirective,
|
refDirective,
|
||||||
widgetDirective
|
widgetDirective
|
||||||
].forEach(d => this.addDirective(d));
|
].forEach(d => this.addDirective(d));
|
||||||
|
|
||||||
|
if (data) {
|
||||||
|
this.loadTemplates(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
utils = {
|
utils = {
|
||||||
|
|||||||
@@ -464,6 +464,17 @@ exports[`foreach iterate, position 1`] = `
|
|||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`loading templates can initialize qweb with a string 1`] = `
|
||||||
|
"function anonymous(context,extra
|
||||||
|
) {
|
||||||
|
let h = this.utils.h;
|
||||||
|
let c1 = [], p1 = {key:1};
|
||||||
|
let vn1 = h('div', p1, c1);
|
||||||
|
c1.push({text: \`jupiler\`});
|
||||||
|
return vn1;
|
||||||
|
}"
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`loading templates can load a few templates from a xml string 1`] = `
|
exports[`loading templates can load a few templates from a xml string 1`] = `
|
||||||
"function anonymous(context,extra
|
"function anonymous(context,extra
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -878,6 +878,16 @@ describe("t-ref", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe("loading templates", () => {
|
describe("loading templates", () => {
|
||||||
|
test("can initialize qweb with a string", () => {
|
||||||
|
const data = `
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<templates id="template" xml:space="preserve">
|
||||||
|
<div t-name="hey">jupiler</div>
|
||||||
|
</templates>`;
|
||||||
|
const qweb = new QWeb(data);
|
||||||
|
expect(renderToString(qweb, "hey")).toBe("<div>jupiler</div>");
|
||||||
|
});
|
||||||
|
|
||||||
test("can load a few templates from a xml string", () => {
|
test("can load a few templates from a xml string", () => {
|
||||||
const data = `
|
const data = `
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|||||||
Reference in New Issue
Block a user