在页面中直接增加js
<?php
use yii\Web\View;
?>
<?php $this->registerJs("var options = ".json_encode($options).";", View::POS_BEGIN, 'my-options');?>
registerJs方法第一个参数为js代码。第二个参数为定义js输出位置常量,在yii\web\View中定义。
有以下这些常量:
View::POS_HEAD:当前js代码在页面head节点即将闭合部分。
View::POS_BEGIN : 当前js代码在页面body节点开始位置。
View::POS_END: 当前js代码在页面body节点即将结尾处位置,页面jquery的ready方法上边。
View::POS_READY: 当前js代码在页面jquery的ready方法内部。
View::POS_LOAD: 当前js代码在页面jquery的ready方法下边的load方法内部。
第三个参数为当前这段js代码的id标示,这个参数是可选的,如果没有定义这个参数,当前js代码便会成为id标示。如果定义多个id标示一致,并且位置一致,那么最后一个覆盖之前标示相同的;如果多个标示id一致,位置不一致,都会存在页面上。
引入js文件
<?php $this->registerJsFile('http://cdn.bootcss.com/vue/2.0.0-beta.1/vue.js', [
//可选参数,依赖的资源包名称,这两个资源类所包含定义的js文件都会出现在当前js文件的前边
'depends' => [
\yii\web\JqueryAsset::className(),
\frontend\assets\OurAsset::className(),
],
//可选参数,定义当前js文件的出现位置,默认位置为View::POS_END
'position' => View::POS_END,
],
//vue.js是为当前引入js的定义的一个标示id,可选参数,如果没有定义这个值,标示id为第一个参数的值。
//如果多个引入文件的标示id是相同的,后边的将覆盖前边的。
'vue.js');?>
JS BLOCK 注意script 标签
<script type="text/javascript">
<?php $this->beginBlock('js') ?>
//js代码
<?php $this->endBlock() ?>
<?php $this->registerJs($this->blocks['js'], \yii\web\View::POS_END); ?>
</script>
网友评论