首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想在Drupal 8中从另一个模块的控制器调用ajax回调函数,可以吗?

我想在Drupal 8中从另一个模块的控制器调用ajax回调函数,可以吗?
EN

Drupal用户
提问于 2020-03-20 07:36:51
回答 1查看 1.4K关注 0票数 0

我给出了我的主表单的代码和编写ajax回调的另一个模块的控制器。实际上,这个ajax回调函数将以不同的形式使用。所以我想创建一个通用模块来调用这个函数。帮帮忙吧。这是主表单的表单字段:

代码语言:javascript
运行
复制
    $form['construction_type'] = array(
  '#type' => 'radios',
  '#title' => $this->t('1. Whether Boiler or Economiser:'),
  '#default_value' => 'b',
  '#options' => array('b' => $this->t('Boiler'), 'e' => $this->t('Economizer')),
  '#ajax' => [
                  'callback' => '\Drupal\common_functions\Controller\CommonFunctionsController :: ajax_load_boiler_size',

               ],
);

这是另一个模块的控制器中的ajax回调函数。

代码语言:javascript
运行
复制
    class CommonFunctionsController extends ControllerBase{  public function ajax_load_boiler_size(array &$form, FormStateInterface $form_state){
$response = new AjaxResponse();
$response->addCommand(new ReplaceCommand('#boiler_size_div', $form['boiler_size']));
return $response;

}

错误消息为Symfony\Component\HttpKernel\Exception\HttpException:,指定的#ajax回调为空或不可调用。

EN

回答 1

Drupal用户

发布于 2020-03-20 15:15:02

如果有的话,这应该是:

代码语言:javascript
运行
复制
'callback' => ['\Drupal\common_functions\Controller\CommonFunctionsController', 'ajax_load_boiler_size'],

不过,只有当它起作用的时候才会这样。没有保证。

票数 3
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/292084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档