2015-02-28 7 views
8

Chcę dołączyć mój skrypt js specific.js dla określonego widoku o identyfikatorze działania specific-action-id. Nie chcę, aby specific.js było zawarte na każdej stronie.Yii2 - Dołącz skrypt JS tylko do określonego widoku

Do włączenia skryptu js dla całej witryny zwykle muszę edytować AppAsset.php. W tym celu, co powinienem zrobić?

Odpowiedz

1

@soju ma rację. Możesz jednak również tworzyć określone pakiety zasobów do wykorzystania określonych widoków. Twoje specyficzne pliki js mogą być grupą plików w tej sytuacji, możesz używać pakietów zasobów i możesz używać dowolnych widoków.

1

Zdecydowanie zaleca się używanie pakietów zasobów do rejestrowania zewnętrznych plików JS zamiast funkcji registerJsFile(), ponieważ umożliwiają one większą elastyczność i bardziej szczegółową konfigurację zależności. Używanie pakietów zasobów pozwala również łączyć i kompresować wiele plików JS, co jest pożądane w przypadku witryn o dużym natężeniu ruchu.

Możesz więc utworzyć nowy plik AppAsset i umieścić w nim swoje pliki css i javascript.

Tworzenie składnika aktywów Bundle

w katalogu \ aktywów, tworzymy StatusAsset.php:

<?php 
/** 
* @link http://www.yiiframework.com/ 
* @copyright Copyright (c) 2008 Yii Software LLC 
* @license http://www.yiiframework.com/license/ 
*/ 

namespace app\assets; 

use yii\web\AssetBundle; 

/** 
* @author Qiang Xue <[email protected]> 
* @since 2.0 
*/ 
class StatusAsset extends AssetBundle 
{ 
    public $basePath = '@webroot'; 
    public $baseUrl = '@web'; 
    public $css = []; 
    public $js = [ 
     '/js/jquery.simplyCountable.js', 
     '/js/twitter-text.js', 
     '/js/twitter_count.js', 
     '/js/status-counter.js', 
    ]; 
    public $depends = [ 
      'yii\web\YiiAsset', 
      'yii\bootstrap\BootstrapAsset', 
     ]; 
} 

W pliku widoku

use app\assets\StatusAsset; 
StatusAsset::register($this); 

Resources http://www.yiiframework.com/doc-2.0/guide-output-client-scripts.html https://code.tutsplus.com/tutorials/how-to-program-with-yii2-working-with-asset-bundles--cms-23226

Powiązane problemy