2015-10-14 7 views
5

Hier ist mein Asset Code ..YII2 Anruf jquery-ui-Code vor bootstrap.js

public $js = [ 
    'js/jquery-ui.min.js', 
    'js/app.min.js', 

]; 

Ich habe einige Widgets in der View-Datei verwendet, ... und hier ist die Reihenfolge der js-Dateien. Was ich will ist, die jquery-ui.js vor bootstrap.js zu nennen. Wie geht das?

enter image description here

Antwort

3

Platzierung jQuery UI nach Bootstrap macht keinen Sinn, da sie sich gar nicht angewiesen sind. Wenn Sie jedoch ein Bundle vor einem anderen einschließen möchten, sollten Sie dem zugehörigen Bundle eine Abhängigkeit hinzufügen.

Für benutzerdefinierte Asset-Bundle können Sie dies nur schreiben:

$depends = [ 
    // Write classes of dependent asset bundles here, for example: 
    'yii\jui\JuiAsset', 
]; 

Aber weil Bootstrap eingebaut ist Vermögenswert, können Sie es nicht auf diese Weise modifizieren. Stattdessen können Sie es weltweit über Config-Asset-Manager festgelegt:

return [ 
    // ... 
    'components' => [ 
     'assetManager' => [ 
      'bundles' => [ 
       'yii\bootstrap\BootstrapAsset' => [ 
        'depends' => [     
         'yii\jui\JuiAsset', 
        ]; 
       ], 
      ], 
     ], 
    ], 
]; 

Oder einfach eingestellt Abhängigkeit in einem bestimmten Ort vor dem Rendern Ansicht:

Yii::$app->assetManager->bundles['yii\bootstrap\BootstrapAsset'] = [ 
    'depends' => [     
     'yii\jui\JuiAsset', 
    ]; 
], 

Offizielle Dokumente: