yii2:动态调用小部件

时间:2015-02-27 14:49:12

标签: javascript ajax widget yii2

让我们想象一下我有一些小部件:Widget1;

我在视图文件中调用此小部件。

<?= Widget1::widget() ?>

当您单击某个元素时,应调用该窗口小部件的新实例并执行此窗口小部件的js脚本。 在ajax调用之后我无法实现脚本执行;

1 个答案:

答案 0 :(得分: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事件的ajax函数中调用它(jquery中的示例):

<script>
    $.post('/some/someaction',function(response){
        response();
    });
</script>