2015-02-27 2 views
0

Предположим, что у меня есть виджет: Widget1;yii2: Динамический вызов виджета

Я называю этот виджет в файле вида.

<?= Widget1::widget() ?> 

При нажатии на какой-то элемент, создается новый экземпляр виджета должен быть вызван и выполнить JS-скрипты этого виджета. Я не могу реализовать выполнение скрипта после вызова ajax;

ответ

0

Создайте вызов ajax для действия контроллера, в котором вы создадите экземпляр своего виджета и/или называете его функциями возврата javascript. Как это:

//@app/widget/Widget1 
class Widget1 extends \yii\base\Widget 
{ 
    public function run() 
    { 
     echo new JsExpression('function(){ alert("hello,world") }'); 
    } 
} 

//@app/controllers/SomeController 
public function actionSomeaction() 
{ 
    return Widget1::widget(); 
} 

, а затем вызвать, что из вашей АЯКС функции, которая обработки OnClick событие (пример в JQuery):

<script> 
    $.post('/some/someaction',function(response){ 
     response(); 
    }); 
</script> 
Смежные вопросы