我正在尝试使用 useService Hook 使用 setup 方法注册一个 act_window ,但它不起作用。
这是我的组件。
/** @odoo-module **/
// const { useState, useRef } = owl.hooks;
import { useEffect, useService } from "@web/core/utils/hooks";
import AbstractField from 'web.AbstractFieldOwl'
import { _lt } from 'web.translation';
class ReferenceButtonWidget extends AbstractField {
setup() {
// super.setup(...arguments);
this.actionService = useService('action') // <----------------- ERROR
}
onClick() {
console.log(this.value);
}
}
ReferenceButtonWidget.description = _lt("Reference");
ReferenceButtonWidget.supportedFieldTypes = ['reference'];
ReferenceButtonWidget.template = 'iqba_document.reference_button_widget';
const registry = require('web.field_registry_owl');
registry.add('reference_button_widget', ReferenceButtonWidget)
如果我评论this.actionService = useService('action')行,我的组件渲染正常。
如果此时我暂停执行,则只有以下服务可用:
我究竟做错了什么?谢谢
现在我用它来调用一个动作:
this.__owl__.parent.parentWidget.do_action({
type: 'ir.actions.act_window',
res_model: this.value.model,
res_id: this.value.res_id,
views: [[false, 'form']],
target: 'new'
})