0

我遵循以下指南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 文件的问题。

意见/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);
    }
}
4

1 回答 1

0

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

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

在那里并将 ajax.js 放入 frontend/web/js

我很肯定这views不是 js 文件的最佳位置。

$basePath在对and进行更改之前$baseUrl,请确保正确使用它们以及别名

于 2015-04-01T14:21:45.963 回答