我想在我的自定义模块中自定义列表视图填充,所以我继续进行如下操作:
my_custom_module.js:
odoo.define('my_custom_module', function(require){
'use strict';
var core = require('web.core');
var List = core.view_registry.get('list');
var QWeb = core.qweb;
List.List.include({
render: function () {
var self = this;
this.$current.html(
QWeb.render('ListView.rows', _.extend({}, this, {
render_cell: function () {
return self.render_cell.apply(self, arguments); }
})));
this.pad_table_to(1);
},
});
});
在我的XML中:
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<template id="assets_backend" name="my_custom_module assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script src="/my_custom_module/static/src/js/my_custom_module.js" type="text/javascript" />
</xpath>
</template>
</odoo>
但问题是这适用于我所有的Odoo模块!
如何指定自定义仅适用于my_custom_module?
感谢您的帮助:)
答案 0 :(得分:0)
通过使用<div style="visibility: hidden" id="my_view" />
,您可以扩展List小部件的现有功能。您需要做的是create your own widget扩展List并将其分配给您的视图
如果您不想要并且想继续使用已有的方法,可以在视图中插入一个元素,该元素将用作可以用作钩子的钩子,以便您可以应用更改只对你的看法。例如,在视图中插入元素:
if ($( "#my_view" ).length) {
// your element exists, that means the javascript code runs on your view and your custom code should be executed.
} else {
// another list is being rendered and you should not run any custom code.
}
然后在你的javascript中:
{{1}}