как расширить функцию инициализации в моделях POS. js - PullRequest
0 голосов
/ 20 апреля 2020

я хочу добавить переменную в функцию инициализации, но я не знаю, как это сделать правильно

вот что я попробовал прямо сейчас

odoo.define('tw_pos_inherit_model.attemptInherit', function (require) {
    "use strict";
    var POSInheritmodel = require('point_of_sale.models');

    var _super_order = POSInheritmodel.Order.prototype;

    POSInheritmodel.Order = POSInheritmodel.Order.extend({
        initialize: function(session,attributes){
            var self = this;
            this.additional_discount = 0;
            _super_order.initialize.apply(this,arguments);
        },

я пытался делать то, что сказано здесь но пример для PosModel не Order

здесь ошибка

point_of_sale.assets.js:79 Cannot read property 'name' of undefined TypeError: Cannot read property 'name' of undefined
    at Engine.eval (eval at _render (http://localhost:8071/web/content/319-5a1ade2/web.assets_common.js:3416:73), <anonymous>:50:34)
    at Engine._render (http://localhost:8071/web/content/319-5a1ade2/web.assets_common.js:3415:296)
    at Engine.render (http://localhost:8071/web/content/319-5a1ade2/web.assets_common.js:3415:151)
    at Engine._render (http://localhost:8071/web/content/319-5a1ade2/web.assets_common.js:3419:57)
    at Engine.render (http://localhost:8071/web/content/319-5a1ade2/web.assets_common.js:3415:151)
    at Class.render_orderline (http://localhost:8071/web/content/723-a89f195/point_of_sale.assets.js:306:5014)
    at Class.renderElement (http://localhost:8071/web/content/723-a89f195/point_of_sale.assets.js:308:354)
    at Class.replace (http://localhost:8071/web/content/723-a89f195/point_of_sale.assets.js:307:423)
    at Class.start (http://localhost:8071/web/content/723-a89f195/point_of_sale.assets.js:325:810)
    at http://localhost:8071/web/content/319-5a1ade2/web.assets_common.js:3684:52

1 Ответ

1 голос
/ 20 апреля 2020

Вам не нужно var self = this;, так как он не будет использоваться позже.

Кроме того, вам, скорее всего, нужно вернуть что-то из функции инициализации.

_super_order.initialize.apply(this,arguments);

Должно быть:

return _super_order.initialize.apply(this,arguments);

...