如何在yii2高级模板上使用资产包含js文件

时间:2015-04-01 13:36:21

标签: ajax yii2-advanced-app

我已经了解了以下指南http://www.yiiplayground.com/yii2/web/index.php?r=ajax/index如何使用资产包含js文件。我在/frontend/assets

下创建的以下文件
<?php 
namespace frontend\assets;

use yii\web\AssetBundle;

class AjaxAsset extends AssetBundle{
    public $basePath = '@frontend';
    public $baseUrl = '/view';
    public $css = [

    ];
    public $js = [
        'ajax/ajax.js',
    ];
    public $depends = [
    'yii\web\YiiAsset',
    'yii\bootstrap\BootstrapAsset',
    ];

}
?>

我已设法通过更新到以下

来使其工作
//public $basePath = '@webroot';
//public $baseUrl = '@web';
public $sourcePath = '@frontend/views/ajax';

但是我现在遇到了javascript文件的问题。

views / ajax / ajax.js

'reportsviewDone': function (response) {
    // This is called by the link attribute 'data-on-done' => 'simpleDone'
    console.dir(response);
    $('#css3buttons').html(response.body);
}

我收到语法错误

SyntaxError: missing ; before statement
'reportsviewDone': function (response) {

我已将其修改为

var ajaxCallbacks = {
    'reportsviewDone': function (response) {
        // This is called by the link attribute 'data-on-done' => 'simpleDone'
        console.dir(response);
        $('#css3buttons').html(response.body);
    }
}

1 个答案:

答案 0 :(得分:0)

你真的需要单独的资产吗?如果没有,请使用高级模板为您完成的工作(他们不会将其称为模板),使用其站点范围的AppAsset.php。放

   public $js = [
       'js/ajax.js',
   ];

然后将ajax.js放入frontend / web / js

我非常肯定views不是js文件的最佳位置。

在对$basePath$baseUrl进行更改之前,请确保您使用properly以及aliases