당신하여 JS 파일을 등록 할 경우 :이 작동
$this->registerJsFile("@web/js/all.js");
을하지만 jQuery를 사용할 수 없습니다. 이 파일 all.js
이 jQuery보다 먼저로드되기 때문입니다. jQuery 이후에로드하려면 'yii\web\YiiAsset'
또는 \yii\web\JqueryAsset
에 의존하게 만듭니다. 따라서 jQuery.js
이후에로드됩니다. 예 :
$this->registerJsFile("@web/js/all.js",[
'depends' => [
\yii\web\JqueryAsset::className()
]
]);
그래서 \yii\web\JqueryAsset
와 \yii\web\YiiAsset
사이의 차이점은 무엇입니까?
에서 js 파일은 jQuery.js
이후에로드되고 YiiAsset
에서 yii.js
파일 뒤에 js 파일이로드됩니다. 당신이 당신의 자신의 사용자 정의 자산 번들을 만들려면
:
는
<?php
namespace frontend\components;
use yii;
use yii\web\AssetBundle;
class CustomAssets extends AssetBundle
{
public $css = [
"path/to/css/file.css"
];
public $js = [
"path/to/js/file.js"
];
public $depends = [
];
}
파일을 등록하면 특정보기에서만 파일을 사용할 수 있습니다. 다른보기에서 원합니다. 다른 js 파일을 사용하십시오.이것이 자산으로 가능합니까? 자산 관리자가 A보기에서만이 파일을 사용하고 B보기에서 해당 파일을 사용하는 경우 – David
과 같은 특정 자산을 작성해야 특정보기에 등록해야한다고 이해할 수 없습니다. 자산 번들 클래스의'init()'메소드를 구현함으로써 특정 조건 (문서가 지정하는대로)에 기반한 새로운 파일을 포함하는 것이 가능할 수도 있지만 실제로는 csase-by-case basis에 달려있다. –