,可以通过以下步骤完成:
use Drupal\Core\Controller\ControllerBase;
use Drupal\node\Entity\Node;
class MyController extends ControllerBase {
public function getCurrentNode() {
// 获取当前节点的ID
$nid = \Drupal::routeMatch()->getParameter('node')->id();
// 使用节点ID加载节点对象
$node = Node::load($nid);
// 检查节点是否存在
if ($node) {
// 在这里可以对节点进行进一步操作
// 例如获取节点的标题、内容等信息
$title = $node->getTitle();
$body = $node->body->value;
// 返回节点信息给ajax请求
return [
'#markup' => '<h1>' . $title . '</h1><div>' . $body . '</div>',
];
}
else {
// 如果节点不存在,返回错误信息给ajax请求
return [
'#markup' => '<p>节点不存在。</p>',
];
}
}
}
my_module.ajax_node:
path: '/my-module/ajax-node'
defaults:
_controller: '\Drupal\my_module\Controller\MyController::getCurrentNode'
_format: json
requirements:
_permission: 'access content'
_format: json
(function ($) {
$(document).ready(function () {
$.ajax({
url: '/my-module/ajax-node',
dataType: 'json',
success: function (data) {
// 在这里处理ajax请求返回的节点信息
$('#node-container').html(data);
}
});
});
})(jQuery);
以上步骤中,通过使用Drupal的路由机制和节点加载功能,我们可以在处理ajax请求的Controller中获取到Drupal8中的当前节点,并将节点信息返回给ajax请求。这样我们可以在前端页面上进行进一步的处理和展示。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云