cakephp - CakePHP - 从控制器的 beforeRender 回调中将 JS 文件添加到“脚本”块
问题描述
是否可以在控制器 beforeRender() 中添加一个 js 文件来查看?可取吗?如果不是,并且我不能使用视图,我应该只使用事件系统吗?
基本上这个想法是让我创建的插件将 JS 文件注入主题插件的“脚本”块(单独的插件)
解决方案
经过更多尝试,我决定通过并使用事件系统。我是这样完成的:
<?php
namespace App\Event;
use Cake\Event\EventListenerInterface;
class ApplicationListener implements EventListenerInterface {
public function implementedEvents() {
return [
'View.beforeLayout' => 'injectJsFile'
];
}
public function injectJsFile(Event $event, $layoutFile){
$event->getSubject()->Html->script('myscript', ['block' => 'script']);
}
}
这对我有用,但如果有控制器方式或更好的事件系统方式,我很想听听。
推荐阅读
- reactjs - 如何从 redux 形式的字段中获取价值?
- reactjs - react-google-maps 地图在传递道具时未更新,并且标记在更新时落后一个位置
- python - 试图找到一种方法将相同的密钥用于不同的值
- php - apache 配置和 ERR_EMPTY_RESPONSE 出错
- php - 在每个目录的 php.ini 上使用 `disable_functions`
- java - 如何使用硒单击元素,其中仅存在“::Before”标签
- javascript - 是否可以检查内联 SVG 中各种形状之间的共享边界?
- angular6 - Angular6 *ngIf 在第一次单击搜索按钮时不加载 div 部分,而是在第二次单击时加载
- c# - 在列表上创建 Microsoft Excel SumIf 函数
- c++ - 如何在 C++ 中计算下周六之前的秒数?