我给出了我的主表单的代码和编写ajax回调的另一个模块的控制器。实际上,这个ajax回调函数将以不同的形式使用。所以我想创建一个通用模块来调用这个函数。帮帮忙吧。这是主表单的表单字段:
$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回调函数。
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回调为空或不可调用。
发布于 2020-03-20 15:15:02
如果有的话,这应该是:
'callback' => ['\Drupal\common_functions\Controller\CommonFunctionsController', 'ajax_load_boiler_size'],
不过,只有当它起作用的时候才会这样。没有保证。
https://drupal.stackexchange.com/questions/292084
复制相似问题