2017-06-20 77 views
0

我使用Yii.I想收到關於如何組織的意見編寫項目組織的JavaScript我JavaScript.I想過幾種選擇:如何在Yii的項目

  1. 把所有的代碼在一個文件中(應用程序。 js),爲每個特徵模塊創建並附加到項目的每個頁面。但問題是,並非所有頁面都需要所有功能,因此在這種情況下,我必須加載無用的代碼,並且很難在數百行中導航。 (我知道我可以在單獨的文件中編寫然後「編譯」所有文件,但它不能解決代碼過多的問題)
  2. 爲每個特性創建單獨的文件並通過Yii管理它(僅附加需要文件到頁面)。但是某些功能只需要幾行代碼,爲此創建文件似乎不合理。

回答

0

你可以使用資產的混合和佈局

在內部存儲your_app \意見\佈局適當佈局\ 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 \資產,你可以配置你需要的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',[ ....]); 

}