Drupal 7 |如何通过drupal_add_js将函数回调传递给模块js?

时间:2016-09-03 10:03:35

标签: javascript jquery drupal drupal-7

设置:模块的javascript文件包含以下功能:

(function ($, Drupal, undefined) {
    Drupal.behaviors.mymodule = {
        attach: function (context, settings) {
            var userSettings = settings.mymodule;
            var myFunction = userSettings.passedFunctionCallback;

            function a() {
                return 'a';
            }

            function b(){
                return 'b';
            }
        }
    }
})(jQuery, Drupal);

如果我想为变量myFunction分配一个函数,我只需在javascript中执行此操作:

myFunction = a;

当我想通过Drupals drupal_add_js传递此回调时出现问题:

drupal_add_js(drupal_get_path('module', 'mymodule') . '/js/module.js');
drupal_add_js(array('mymodule' => array('passedFunctionCallback' => 'a')), array('type' => 'setting'));

在我的js中,passedFunctionCallback是一个字符串而不是函数回调:

myFunction = 'a';

问题是:如何通过drupal_add_js将变量作为函数回调传递(如果可能的话)?有没有解决方法?

0 个答案:

没有答案