我在谈论CakePHP助手。我想使用CakePHP的帮助程序加载JS文件。
考虑到Helper类的构造将加载所有必需的JS文件。
但是,我需要多次在单个视图中调用Helper。因此,可能会多次调用JS文件。我想只加载一次这些JS文件。
任何人都可以帮我解决这个问题吗?
这将是我的助手脚本
<?php
App::uses('AppHelper', 'View/Helper');
/**
* @alias Mathjax Class for helper
* @description This class is to define helper in cakephp.
*/
class MathjaxHelper extends AppHelper {
/*
* Constructor of the class.
*/
function __construct(View $View, $settings = array()) {
parent::__construct($View, $settings);
//login to load all necessary JS files.
}
function create() {
//this function will return the helper html
}
}
答案 0 :(得分:4)
如果您使用HtmlHelper::script方法加载'inline' => false
,则加载js文件默认情况下会包含一次。
要使用此方法,请确保在布局文件中回显$scripts_for_layout
变量。 E.g:
<html>
<head>
...
</head>
<body>
...
<?php echo $scripts_for_layout ?>
</body>
</html>
在视图,元素或帮助程序中 - 只需确保使用内联参数调用脚本方法:
<?php $this->Html->script('my', array('inline' => false)); ?>
通过这种方式,使用给定的js文件调用脚本方法的频率并不重要 - 它只会在生成的html输出中出现一次。