javascript - 如何覆盖 odoo 12 中的 _createStripeToken 函数
问题描述
我正在寻找一种方法来覆盖 odoo 12 中 payment_stripe_sca 模块的 _createStripeToken 函数。
我正在这样做,但未显示 console.log。如果我将此控制台日志添加到原始日志中,则会显示
PaymentForm.include({
/**
* @override
* @private
* @param {Event} ev
* @param {DOMElement} checkedRadio
* @param {Boolean} addPmEvent
*/
_createStripeToken: function (ev, $checkedRadio, addPmEvent) {
console.log("Adfadsfasdfasdfas")
}
})
解决方案
您需要修补支付表单类并将 js 文件添加到前端资产 ( web.assets_frontend
)。
重写
_createStripeToken
函数:odoo.define('stack_overflow.payment_form', function (require) { "use strict"; var PaymentForm = require('payment.payment_form'); PaymentForm.include({ _createStripeToken: function (ev, $checkedRadio, addPmEvent) { var self = this; console.log("Adfadsfasdfasdfas"); return this._super.apply(this, arguments); }, }); });
将文件添加到前端资产:
<template id="assets_frontend" inherit_id="web.assets_frontend" name="Payment Stripe SCA Assets"> <xpath expr="." position="inside"> <script type="text/javascript" src="/stack_overflow/static/src/js/payment_form.js"></script> </xpath> </template>
详情请查看资产管理。
推荐阅读
- regex - 替换ini文件中的块文本
- javascript - 如何在 tsx 中分配参数?
- apache-spark - 来自 DynamoDB Json 的 Spark 取消嵌套嵌套模式
- html - 网站未在本地使用导入的 Google 字体,但在 codepen 中工作
- reactjs - Next.js | 有什么方法可以呈现 .xml 文件?
- java - Java JDBC SQL 查询结果不一致
- android - 如何确定 Android App 的 SDK 级别?
- java - 当 gps 关闭时,.isProviderEnabled(LocationManager.NETWORK_PROVIDER) 总是返回 false?
- javascript - 在 Discord.js 中担任最高角色
- vba - 在不创建查找/哈希表的情况下查找内置/用户定义样式的索引号