У меня есть следующее руководство http://www.yiiplayground.com/yii2/web/index.php?r=ajax/index Как я могу добавить файл js с использованием активов. следующий файл я создал под /frontend/assets
Как включить файл js с использованием актива в расширенном шаблоне yii2
<?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);
}
}
Почему они сделали это так, как в примере? http://www.yiiplayground.com/yii2/web/index.php?r=ajax/index – shorif2000
Мы можем только догадываться. В этом примере предлагается много видов, и для каждого представления имеется выделенный сценарий. Но если js-скрипты достаточно велики, чтобы извлечь выгоду из их разделения, лучше использовать js build system и js-модули, а не просто загружать сценарии как активы Yii. Активы Yii в основном предназначены для повторного использования пакетов css + js, которые могут быть идентифицированы по их версиям (например, как Yii имеет дело с активами виджета, Bootstrap и jQuery). Хотя это хороший пример того, как js может быть добавлен на страницу динамически без какого-либо html-беспорядка. – estus