1
嗨我被困在窗體視圖上呈現自定義html內容的構件創建,我不知道如何遵循。這裏是我的代碼odoo創建自定義後端表單構件來呈現html視圖
JS:
(function (instance) {
var _t = instance.web._t,
_lt = instance.web._lt;
var QWeb = instance.web.qweb;
console.log('hi..........'); // Custome message to dispaly on console
openerp.my_module = function (instance, local) {
console.log(instance);
instance.web.form.widgets.add('my_module.home', 'instance.my_module.Home');
instance.my_module.Home = instance.web.form.FormView.extend({
template: 'my_template',
init: function (view, code) {
console.log("::: INIT");
},
start: function() {
console.log("::: START");
}
});
}
})(openerp);
XML模板
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="my_template">
<div>
Template content
</div>
</t>
</templates>
此時只有在終端的'hi..........'
和對象實例顯示,但從來沒有運行部件碼。所以我的問題是。如何使用它的形式配置,如果i'm失去了一些東西在這裏
<record id="view_form_my_module" model="ir.ui.view">
<field name="name">My Module</field>
<field name="model">my.module</field>
<field name="arch" type="xml">
<form>
<sheet>
**HOW TO ISE IT HERE**
</sheet>
</form>
</field>
</record>
'web.assets_backend.js:3600未捕獲的類型錯誤:obj不是一個constructor' – efirvida
我希望能更有幫助。我把文檔中的內容粘貼到我的答案中,並作了一些調整(例如)。似乎它討厭你的'start'函數的定義。如果這不起作用,我會在稍後提供一個完整的工作示例。 –
嘗試從文檔中的FormWidget的香草修改版開始。一旦你將插件名稱和類名替換爲適合你的插件的東西。然後用真實的內容充實它。如果你的qweb說'
HELLO WORLD
',你可以讓它出現在屏幕上,那麼你就可以開始前進。 –