2015-04-01 1 views
0

У меня есть следующее руководство 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); 
    } 
} 

ответ

0

ли вам действительно нужно отдельный актив для этого? Если нет, используйте работу, которую сделал для вас расширенный шаблон (они не назовут его шаблоном ни для чего), используйте его AppAsset.php для всего сайта. Помещенный

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

там и положить ajax.js в веб-интерфейсе/веб/JS

Я вполне уверен, что views не самое лучшее место для JS-файлов.

Перед внесением изменений в $basePath и $baseUrl, убедитесь, что вы используете их properly, а также aliases.

+0

Почему они сделали это так, как в примере? http://www.yiiplayground.com/yii2/web/index.php?r=ajax/index – shorif2000

+0

Мы можем только догадываться. В этом примере предлагается много видов, и для каждого представления имеется выделенный сценарий. Но если js-скрипты достаточно велики, чтобы извлечь выгоду из их разделения, лучше использовать js build system и js-модули, а не просто загружать сценарии как активы Yii. Активы Yii в основном предназначены для повторного использования пакетов css + js, которые могут быть идентифицированы по их версиям (например, как Yii имеет дело с активами виджета, Bootstrap и jQuery). Хотя это хороший пример того, как js может быть добавлен на страницу динамически без какого-либо html-беспорядка. – estus

 Смежные вопросы

  • Нет связанных вопросов^_^