显示服务器端验证错误

Displaying server side validation errors

对于我的一个模型,我有一个简单的 ondelete 事件处理程序:

  function validateStateDeletion(record){
    if (record.Name===STATE_SUBMITTED || record.Name===STATE_CLOSED){
      throw 'Cannot delete internal states '+STATE_SUBMITTED+' and '+STATE_CLOSED;
  }

这个确实有效,可以防止符合条件的记录被删除。我看到错误传播回客户端(它作为异常显示在开发控制台中)。但是,使用 window.onerror 作为应用程序初始化脚本的一部分捕获异常以向用户显示某些内容似乎没有任何效果(这可能不是正确的 Window 对象,因为 window.onerror 在开发控制台中未定义,它可能是执行客户端脚本的一些沙箱 iframe)。

  window.onerror=function(message, url, line, column, error){
    window.toastr.error("Error:" +(message||error));
    return false;
  };

问题:关于 AppMaker 中全局异常处理的任何见解,或显示服务器端验证错误的替代方法?

>> AppMaker 中的全局异常处理

据我所知,现在没有这样的机制

>> 或显示服务器端验证错误的替代方法?

这里我们至少有3个案例

1 Calling the server-side function

 google.script.run
       .withSuccessHandler(function(result) {   
         // TODO
       })
       .withFailureHandler(function(e) {
          // TODO
        })
       .MyServerSideFunction();

2 Triggering any data-related action(createItem, saveChanges, deleteItem, load, reload... etc)

widget.datasource.createItem({
  success: function (somethingThatDependsOnActionType) {
    // TODO
  },
  failure: function (e) {
    // TODO
  }
});

3 在自动保存模式下更改数据源的项目

app.datasources.Employees.item.Name = 'Bob';

Afaik 在这种情况下没有处理错误的好方法。希望它会尽快修复。目前作为解决方法,您可以将数据源切换到手动保存模式并将成功+失败处理程序传递给 saveChanges 回调