我已阅读文档,但无法知道如何执行此操作,例如我在视图文件夹index.php
中的文件medicine-issue-entry
中有一个小脚本,如:
<?php
$js = 'function refresh() {
$.pjax.reload({container:"#medicine_request_entry"});
setTimeout(refresh, 60000); // restart the function every 5 seconds
}
refresh();';
$this->registerJs($js, $this::POS_READY);
?>
我可以将此代码放在单独的文件中,以及如何将其包含在相关文件中。 我们将非常感谢详细的流程。 感谢。
好的我正在使用基本模板。
在AppAsset.php
我已经包括了
public $js = [
'js/autorefresh.js'
];
并在js
中创建了一个文件夹web folder
,并使用以下代码创建了一个新文件autorefresh.js:
function refresh() {
$.pjax.reload({container:"#medicine_request_entry"});
setTimeout(refresh, 60000); // restart the function every 5 seconds
}
refresh();
并在我的index.php
我添加了一行
namespace app\assets;
use app\assets\AppAsset;
AppAsset::register($this);
但同样不起作用,我还缺少什么吗?正如我在registerJs
文件中包含代码一样,它工作正常。
注意:在查看页面源文件时,文件已正确发布,并单击显示脚本的链接,但代码无效。
答案 0 :(得分:4)
使用Yii2的基本模板
将autorefresh.js
脚本添加到/web/js/
目录
function refresh() {
$.pjax.reload({container:"#medicine_request_entry"});
setTimeout(refresh, 60000); // restart the function every 5 seconds
}
refresh();
将您的脚本添加到位于$js
的AppAsset类中的/assets/AppAsset.php
数组
<?php
namespace app\assets;
use yii\web\AssetBundle;
class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/site.css',
];
public $js = [
'js/autorefresh.js',
];
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
];
}
确保您的AssetBundle已注册。
use app\assets\AppAsset;
AppAsset::register($this);
或
\app\assets\AppAsset::register($this);
注意:您没有设置index.php文件的命名空间。