在 yii2 中通过 ajax 显示 kartik 咆哮

Showing kartik growl via ajax in yii2

我正在使用 kartik growl,我想通过 ajax success

显示咆哮

我试过了

这是javascript代码:

$.post({
  url: "forwardpr", // your controller action
  dataType: 'json',
  data: {keylist: keys,user:userdata},
  success: function(data) {
      console.log(data);
    //$.pjax.reload({container:'#forward-grid'});
    $.growl( data.growl );
  },
  error: function(err){
  alert(err);
  console.log("server error");
  }
});

这是控制器代码:

$growl = [
  'title' => "Group members updated.<hr>",
  'icon' => 'glyphicon glyphicon-ok-sign',
  'message' => "Successifully updated.",
  'showSeparator' => true,
];

echo json_encode(['response'=>"Successifully forwarded pr(s)", 'growl' => $growl ]);

如果您看到 TypeError: $.growl is not a function,则表示您没有将所需文件包含到 AppAsset.php 文件中。

要解决此问题,请转到 assets/AppAsset.php 文件并添加:

public $css = [
        // ... Something else might be here
        'css/jquery.growl.css',
    ];

public $js = [
        // Something else might be here
        'js/core.js',
    ];

由于缺少 .js 文件,您在控制台中遇到该错误 (TypeError: $.growl is not a function)。但是你还必须添加 .css 文件,因为没有它你将看不到咆哮,即使它有效。

我相信你用错了函数。这是官方 docs

"Another important update is since version 3.x you no longer call the plugin using $.growl(...) you must use $.notify(...)."

换句话说,尝试使用 $.notify(...) 而不是 $.growl(...) .