richardfan1126 / yii2-js-register
将JS注册到视图中的Yii2小部件
v0.0.1
2016-06-29 17:28 UTC
Requires
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-08-25 23:02:41 UTC
README
将JS注册到视图中的Yii2小部件
我为什么需要这个?
如何在Yii2中注册JS脚本到视图中?
在Yii2中,将JS脚本注册到视图的方法是使用 \yii\web\View::registerJS(),
例如,如果您想初始化一个jQuery插件,您将这样做
// in view file <div class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-body"> <p>Hello World!</p> </div> </div> </div> </div> <?php $this->registerJS('$(".modal").modal({backdrop:"static",keyboard:"false"})'); ?>
显然,这是一个非常糟糕的方法,因为
- 对人类来说难以阅读
- 对您编辑器来说也难以阅读(这意味着JS代码没有语法高亮)
- 您必须处理单引号和双引号
这个小部件可以帮助您在Yii中注册JS脚本,就像您直接将脚本块写入HTML一样!
入门
安装
使用Composer安装
composer require richardfan1126/yii2-js-register "*"
或
php composer.phar require richardfan1126/yii2-js-register "*"
或添加
"richardfan1126/yii2-js-register":"*"
到您的composer.json文件的要求部分。
如何使用
在您的视图文件中,用 <script> 标签包裹您的JS脚本,并用这个小部件包裹所有内容。
示例
// in view file use richardfan\widget\JSRegister; <div class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-body"> <p>Hello World!</p> </div> </div> </div> </div> <?php JSRegister::begin(); ?> <script> $(".modal").modal({ backdrop:"static", keyboard:"false" }); </script> <?php JSRegister::end(); ?>
重要提示:请记住不要在 <script> 块外添加任何内容。
配置
此小部件有两个配置,即传递给 \yii\web\View::registerJS() 方法的参数。示例
<?php JSRegister::begin([ 'key' => 'bootstrap-modal', 'position' => \yii\web\View::POS_READY ]); ?> <script> // JS script </script> <?php JSRegister::end(); ?>
- key(可选)识别JS代码块的关键字。如果为null,则使用$js作为关键字。如果使用相同关键字注册了两个JS代码块,则后者将覆盖前者。默认为null
- position(可选)JS脚本标签应在页面中插入的位置。默认为 \yii\web\View::POS_READY