Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在yii控制器中注册css和js是否更好?_Javascript_Php_Css_Yii - Fatal编程技术网

Javascript 在yii控制器中注册css和js是否更好?

Javascript 在yii控制器中注册css和js是否更好?,javascript,php,css,yii,Javascript,Php,Css,Yii,我只想为一个特定视图加载这些文件 或者在Yii框架中为特定视图导入CSS和Javascript更好的方法,如下所示: Yii::app()->getClientScript()->registerCssFile(Yii::app()->theme->baseUrl.'/css/jquery.ad-gallery.css'); Yii::app()->getClientScript()->registerScriptFile(Yii::app()->the

我只想为一个特定视图加载这些文件

或者在Yii框架中为特定视图导入CSS和Javascript更好的方法,如下所示:

Yii::app()->getClientScript()->registerCssFile(Yii::app()->theme->baseUrl.'/css/jquery.ad-gallery.css');
Yii::app()->getClientScript()->registerScriptFile(Yii::app()->theme->baseUrl.'/js/jquery.ad-gallery.js', CClientScript::POS_HEAD);
像这样,如果您想要控制器特定的文件:

public function actionIndex()
{
  $uri = 'path to your action-specific css';
  Yii::app()->clientScript->registerCssFile($uri, 'screen, projection');
}
如果要在所有控制器上使用此功能,请创建CController的子类,将这些方法放在其中,然后更改控制器以使用新的子类


如果您只想在特定视图中添加文件,那么将其添加到
操作
控制器
中有什么意义呢?这是完全错误的方法,您应该将它们包含在要加载的视图中,而不是操作或控制器中。除非您有这样的需求,您必须通过控制器操作加载文件,否则这肯定不是答案。您告诉OP如何通过控制器操作包含文件,问题是,这是一种更好的方法,但您没有解释为什么更好,这绝对不是直到你没有其他选择或一个特定的要求,你想要一个文件整体添加到布局中,你想要一个文件只在一个特定的视图中加载他们在视图中,你的答案是一个精确的副本
public function init()
{
  $uri = 'path to your controller-specific css';
  Yii::app()->clientScript->registerCssFile($uri, 'screen, projection');
  return parent::init();
}