我已經修改odoo網站的js函數。代碼如下所示 -odoo JS錯誤而修改功能,財產「包括未定義
odoo.define('website_custom_menu.menu_custom', function (require) {
'use strict';
require('website.contentMenu');
var EditMenuDialog = require('website.contentMenu').EditMenuDialog;
EditMenuDialog.include({
start: function() {
this._super();
var r = this._super.apply(this, arguments);
this.$('.oe_menu_editor').nestedSortable({
listType: 'ul',
handle: 'div',
items: 'li',
maxLevels: 4,
toleranceElement: '> div',
forcePlaceholderSize: true,
opacity: 0.6,
placeholder: 'oe_menu_placeholder',
tolerance: 'pointer',
attribute: 'data-menu-id',
expression: '()(.+)'
});
return r;
}
});
});
這將修改網站菜單編輯器。在哪裏可以編輯放置四個級別的子菜單。但是這在consloe上引發了一個錯誤。
它說:「故障模塊」,而加載它。並在控制檯上一些調試後我發現了以下錯誤:
TypeError: Cannot read property 'include' of undefined at website.assets_editor.js:191 at process_job (web.assets_common.js:2994) at Object.process_jobs (web.assets_common.js:3000) at $.when.then.job.rejected (web.assets_common.js:2995) at web.assets_common.js:547 at fire (web.assets_common.js:541) at Object.add as done at Array. (web.assets_common.js:547) at Function.each (web.assets_common.js:370) at Object. (web.assets_common.js:547)
如何解決這個問題,什麼原因造成的?我已經看到其他模塊,他們已經以同樣的方式做到了。
TBN:該模塊具有網站模塊的依賴性和js文件在資產增加。
'include'屬性未定義而不是EditMenuDialog。在EditMenuDialog中,我調用super並返回'r'。我認爲我不需要按照你所展示的方式迴歸。 –
@盧卡斯是對的。請參閱更新的版本https://github.com/odoo/odoo/blob/10.0/addons/website/static/src/js/website.contentMenu.js – manuthalasseril
VAR contentMenu =需要( 'website.contentMenu'); contentMenu.EditMenuDialog。include({start:function(){}}); – manuthalasseril