es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Renderice un componente al hacer clic en el botón en Odoo 14.

Estoy intentando renderizar un componente en el click de un botón.
He creado una plantilla y un componente. Pero no sé cómo vincular la acción del botón y el componente.

Aquí está el código:

component.js

  /** @odoo-module **/

  const { Component } = owl;
  const { useSubEnv, useState } = owl.hooks;

  class BasketVerificationComponent extends Component{

  }

  BasketVerificationComponent.template = 'mobile_basket_verification.basket_verification';

template.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <templates id="template" xml:space="preserve">
        <div t-name="mobile_basket_verification.BasketVerificationComponent" class="o_content o_barcode_client_action" owl="1">
          <div class="o_barcode_header">
            <nav class="navbar-nav mr-auto">
                <span>Am here</span>  
                <span class="o_title navbar-text text-white" t-esc="env.model.name"></span>
            </nav>
          </div>
        </div>
      </templates>

Buttonaction.js

      odoo.define('mobile_basket_verification.basket_menu', function (require) {
      "use strict";

      const MainMenu = require('stock_barcode.MainMenu').MainMenu;

      MainMenu.include({
          events: Object.assign({}, MainMenu.prototype.events, {

              'click .basket_verification_line': function () {
                this.do_action('mobile_basket_verification.BasketVerificationComponent');
              },

          }),
      });
      });
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para renderizar el componente al hacer clic en un botón, deberás crear una acción de botón y vincularla al componente.

    En el fragmento de código proporcionado, la acción del botón está definida en el archivo Buttonaction.js. Está utilizando el método do_action para ejecutar el componente BasketVerificationComponent cuando se hace clic en el botón con la clase “basket_verification_line”.

    Para asegurarte de que el componente esté correctamente vinculado a la acción del botón, asegúrate de que el nombre del template del componente coincida con el nombre utilizado en el método do_action en Buttonaction.js. En este caso, el nombre del template es “mobile_basket_verification.BasketVerificationComponent”.

    Además, asegúrate de que todos los archivos necesarios estén correctamente importados e instalados en el entorno de Odoo.

Comments are closed.