在 SuiteCRM 中包含 .js 文件(v. >7)不起作用

Include .js file in SuiteCRM (v. >7) doesn't work

我是 SuiteCRM 世界的新手。我试图在模块中包含一个新的 .js 文件,但它似乎不起作用。

我看到在 Sugar 版本 6.5 中包含一个 .js 文件,它足以做类似的事情

$viewdefs[$module_name]['EditView']['templateMeta']['includes'] =
array (
    array (
        'file' => 'modules/demo_demo_form/demo.js',
    ),

); 

我还了解到,在较新的版本 (7>) 中,它更改了包含 .js 文件的方式。

我尝试了不同的方法*但似乎不起作用。

 $js_groupings[$module_name]['modules/demo_demo_form/demo.js'] = 
 'include/modules/demo_demo_form/demo.js';

有什么建议吗?

我认为我之前对另一个类似问题的回答会 help you

首先,将您的自定义 JS 包含在 editviewdefs.php(帐户模块示例)

'includes' => 
      array (
        0 => 
        array (
          'file' => 'modules/Accounts/Account.js',
          'file' => 'custom/modules/Accounts/myCustomFile.js',
        ),
      ),

创建自定义 JS 文件 custom/modules/Accounts/myCustomFile.js .

function yourCustomFunction(formElement){
  console.log(formElement); 
}

然后使用 editviewdefs.php 中的以下代码更新您要监视更改的字段(示例中的 contractsigned_c):

array (
            'name' => 'contractsigned_c',
            'label' => 'LBL_CONTRACTSIGNED',
            'displayParams' =>
             array (
              'updateCallback' => 'yourCustomFunction(this)',
          ),
          ),

现在在 Admin/Repair 部分做一个 Repair and Rebuild,瞧,它应该可以工作了:)

如果需要可以在function display()上添加JS函数,都是一样的,函数会在原生combo update之后调用。它看起来像这样 combo_contractsigned_c.update(); yourCustomFunction(this)