【发布时间】:2020-09-25 07:39:13
【问题描述】:
在 OctoberCMS 中,我正在创建一个组件。在组件的 default.htm 部分文件 (/acme/myplugin/components/mycomponent/default.htm) 中,我可以通过以下方式包含任何其他已注册的组件:
{% component 'someComponentName' %}
但是,如果我有以下代码来处理 AJAX 请求:
public function onAjaxRequest()
{
return [
'#ajaxUpdate' => $this->renderPartial('@dates-partial'),
];
}
在我的dates-partial.htm 文件中,我放置了与default.htm 文件中相同的内容,someComponentName 组件未呈现。我还尝试将以下内容放在文件顶部:
[someComponentName]
==
但是这会直接作为文本输出到页面。
如何让renderPartial() 渲染包含组件的部分?
【问题讨论】:
-
您从哪里处理
onAjaxRequestajax 请求。将组件包含在其他组件的部分中是不好的做法,如果要共享代码,则应使用主题部分。一旦你嵌套组件,它会导致意外的行为,有时它会起作用,有时它不会。 -
@HardikSatasiya
onAjaxRequest由我的插件组件处理。我不确定“使用部分主题”是什么意思。我将部分放在我的主题目录中,但它仍然具有相同的行为。 -
我已经添加了我的案例,您可以为您检查它的工作原理。如果你错过了什么。
标签: php components octobercms partials