【问题标题】:Is there a way to call a JavaScript function declared on another file en Drupal?有没有办法调用在另一个文件 en Drupal 上声明的 JavaScript 函数?
【发布时间】:2022-07-20 17:59:36
【问题描述】:

我想创建一个自定义模块,使用 API,我需要创建一个 JavaScript 函数来返回 API 数据,并在另一个自定义模块中从另一个 JavaScript 文件调用这个 JavaScript 函数。

【问题讨论】:

    标签: javascript drupal drupal-9


    【解决方案1】:

    当然!这是一个例子:

    在第一个模块中,在 my_function javascript 文件中命名 test1:

    (function ($, Drupal, drupalSettings) {
    
    'use strict';
    
    Drupal.behaviors.test1_my_functions = Drupal.behaviors.test1_my_functions || {};
    Drupal.behaviors.test1_my_functions = {
    
      attach: function (context) {
    
      },
    
      targetFunction: function() {
        console.log('Use it !');
      }
    }
    
    })(jQuery, Drupal, drupalSettings);
    

    然后在示例 javascript 文件中的模块 test2 中:

    (function ($, Drupal, drupalSettings) {
    
    'use strict';
    
     Drupal.behaviors.test2_example = Drupal.behaviors.test2_example || {};
     Drupal.behaviors.test2_example = {
    
      attach: function (context) {
        Drupal.behaviors.test1_my_functions.targetFunction();
      }
    
    }
    
    })(jQuery, Drupal, drupalSettings);
    

    不要忘记在 info.yml 中为模块“test2”定义依赖关系,在“test2.info.yml”中定义“test1”和在 javascript 库“test2.libraries.yml”中的依赖关系

    example:
     js:
      js/example.js: {}
     dependencies:
      - core/jquery
      - core/jquery.once
      - core/drupal
      - core/drupalSettings
      - test1/my_functions
    

    【讨论】:

    • 这是我一直在寻找的,谢谢 Thomas。
    猜你喜欢
    • 2021-08-15
    • 2020-07-15
    • 2011-11-19
    • 2020-05-15
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 2019-06-21
    相关资源
    最近更新 更多