如何在 angular ui 网格导入文件失败时发出警报?

How to alert on angular ui grid import file fail?

我正在使用 angular UI 网格导入文件。
我正在使用:

enableGridMenu: true,
importerDataAddCallback: function (grid, newObjects) {

当我导入一个非 csv 文件时出现错误:

uncaught exception: UNEXPECTED_END_OF_RECORD at char...

如果导入工作不正常,我希望弹出警告框。
我发现 uiGridImporterService 有方法 alertError(grid, headerRow)
我不确定这是否是我需要的。

那么,如果失败,如何添加警报?
作为附带问题,我可以检查它是否正在导入 .csv 文件吗?

使用$q

通过使用 $q,您可以 return 一个可以失败或通过的承诺。如果您的情况失败,您可以弹出警报。

例子

取自AngularJS documentation

return $q(function(resolve, reject) {
  setTimeout(function() {
    if (okToGreet(name)) {
      resolve('Hello, ' + name + '!');
    } else {
      reject('Greeting ' + name + ' is not allowed.');
    }
  }, 1000);
});

对于失败的承诺 return,您可以让警报弹出窗口告诉用户操作失败。

这是在 CSV 导入失败时发出警报的代码:

CSV.error = function (err){
    var msg = CSV.dump(err);
    CSV.reset();
    //alert("CSV import failed.");
    toastr["error"]("Import failed.");
    throw msg;
};