如何在Yii项目

时间:2017-06-20 08:28:58

标签: javascript php jquery yii

我使用Yii编写项目。我想获得有关如何组织JavaScript的建议。我想到了几个选项:

  1. 将所有代码放在一个文件(app.js)中,为每个功能模块创建并将其附加到项目的每个页面。但问题是并非所有页面都需要所有功能,因此在这种情况下我必须加载无用代码并且难以在数百行之间导航。(我知道我可以在单独的文件中编写然后“编译”所有在一起,但它不能解决多余代码的问题)
  2. 为每个功能创建单独的文件,并通过Yii管理它(仅将必要的文件附加到页面)。但是某些功能只需要几行代码,为此创建文件似乎是不合理的。

1 个答案:

答案 0 :(得分:0)

您可以混合使用资产和布局

在your_app \ views \ layouts \ your_asset_filename.php中存储的正确布局中 您可以注册特定资产

  use your_app\assets\YourAsset;

  //use common\models\UserParam;
  //use common\models\LandScope;

  /* @var $this \yii\web\View */
  /* @var $content string */

  YourAssest::register($this);

  ?>

在your_app \ asset中,您可以配置所需的js文件

class YourAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';

    public $css = [
        'css/site.css',
        ........
    ];
    public $js = [
        'your_js1.js',
        'your_js2.js',
        ....
    ];
    public $jsOptions = ['position' => \yii\web\View::POS_HEAD];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}

并持续您的控制器/操作,您可以设置每个渲染所需的布局

public function actionMyAction()
{
   $this->layout = 'your_asset_filename';

   ... 
   return $this->render('your_view',[ ....]);

}