mirror of
https://github.com/odoo/owl.git
synced 2025-10-06 19:59:41 +07:00
@@ -321,6 +321,10 @@ export class Component<
|
|||||||
return shouldUpdate ? this._updateProps(nextProps) : Promise.resolve();
|
return shouldUpdate ? this._updateProps(nextProps) : Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set(target: any, key: string | number, value: any) {
|
||||||
|
this.__owl__.observer!.set(target, key, value);
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
// Private
|
// Private
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -1449,4 +1449,19 @@ describe("widget and observable state", () => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("widget can add observed keys to its state", async () => {
|
||||||
|
class TestWidget extends Widget {
|
||||||
|
state: any = { a: 1 };
|
||||||
|
inlineTemplate = `<div><t t-esc="state.a"/><t t-esc="state.b"/></div>`;
|
||||||
|
}
|
||||||
|
const widget = new TestWidget(env);
|
||||||
|
await widget.mount(fixture);
|
||||||
|
|
||||||
|
expect(fixture.innerHTML).toBe("<div>1</div>");
|
||||||
|
|
||||||
|
widget.set(widget.state, "b", 2);
|
||||||
|
await nextTick();
|
||||||
|
expect(fixture.innerHTML).toBe("<div>12</div>");
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user