在頁(yè)面中直接增加js
<?php
use yii\Web\View;
?>
<?php $this->registerJs("var options = ".json_encode($options).";", View::POS_BEGIN, 'my-options');?>
registerJs方法第一個(gè)參數(shù)為js代碼摊崭。第二個(gè)參數(shù)為定義js輸出位置常量,在yii\web\View中定義逞姿。
有以下這些常量:
View::POS_HEAD:當(dāng)前js代碼在頁(yè)面head節(jié)點(diǎn)即將閉合部分萎津。
View::POS_BEGIN : 當(dāng)前js代碼在頁(yè)面body節(jié)點(diǎn)開(kāi)始位置咧七。
View::POS_END: 當(dāng)前js代碼在頁(yè)面body節(jié)點(diǎn)即將結(jié)尾處位置廊营,頁(yè)面jquery的ready方法上邊歪泳。
View::POS_READY: 當(dāng)前js代碼在頁(yè)面jquery的ready方法內(nèi)部萝勤。
View::POS_LOAD: 當(dāng)前js代碼在頁(yè)面jquery的ready方法下邊的load方法內(nèi)部露筒。
第三個(gè)參數(shù)為當(dāng)前這段js代碼的id標(biāo)示,這個(gè)參數(shù)是可選的敌卓,如果沒(méi)有定義這個(gè)參數(shù)慎式,當(dāng)前js代碼便會(huì)成為id標(biāo)示。如果定義多個(gè)id標(biāo)示一致,并且位置一致瘪吏,那么最后一個(gè)覆蓋之前標(biāo)示相同的癣防;如果多個(gè)標(biāo)示id一致,位置不一致掌眠,都會(huì)存在頁(yè)面上蕾盯。
引入js文件
<?php $this->registerJsFile('http://cdn.bootcss.com/vue/2.0.0-beta.1/vue.js', [
//可選參數(shù),依賴的資源包名稱,這兩個(gè)資源類所包含定義的js文件都會(huì)出現(xiàn)在當(dāng)前js文件的前邊
'depends' => [
\yii\web\JqueryAsset::className(),
\frontend\assets\OurAsset::className(),
],
//可選參數(shù)蓝丙,定義當(dāng)前js文件的出現(xiàn)位置级遭,默認(rèn)位置為View::POS_END
'position' => View::POS_END,
],
//vue.js是為當(dāng)前引入js的定義的一個(gè)標(biāo)示id,可選參數(shù)渺尘,如果沒(méi)有定義這個(gè)值挫鸽,標(biāo)示id為第一個(gè)參數(shù)的值。
//如果多個(gè)引入文件的標(biāo)示id是相同的鸥跟,后邊的將覆蓋前邊的丢郊。
'vue.js');?>
JS BLOCK 注意script 標(biāo)簽
<script type="text/javascript">
<?php $this->beginBlock('js') ?>
//js代碼
<?php $this->endBlock() ?>
<?php $this->registerJs($this->blocks['js'], \yii\web\View::POS_END); ?>
</script>