运行 替换 Google App Maker 中的脚本

Run replace script in Google App Maker

我想添加一个服务器脚本,用于在填充文本框时替换特殊字符。 "onValueEdit" 例程的信息指出: 每当用户编辑此小部件的值时,此脚本将 运行 在客户端上。可以使用参数 widget 来引用 widget,widget 的新值存储在 newValue 中。与 onValueChange() 不同,此 运行 仅在用户更改小部件的值时触发;它不会 运行 响应绑定或以编程方式设置值。

因此我构建了以下服务器脚本,它应该从文本框中获取文本,覆盖特殊字符并替换文本框中的文本。但是当我将脚本添加到 "onValueEdit" 事件时,Google App Maker returns "function is undefined".

function cleanup(input, output) {
  if (input !== null) {
    output = input.trim();
    output = output.replace('ß','ss');
    output = output.replace('ä','ae');
    output = output.replace('ö','oe');
    output = output.replace('ü','ue');
    return output;
  }
}

如果您只想在客户端进行此更改,正确的方法是将此代码添加到 onValueEdit 事件处理程序:

// onValueEdit input's event handler
if (newValue !== null) {
  output = newValue.trim();

  output = output.replace('ß','ss');
  ...

  widget.value = output;
}

如果您需要在保存到数据库之前安全地执行此覆盖,那么您需要使用 Model Events:

// onBeforeCreate and onBeforeSave events
if (record.FieldToChange !== null) {
  record.FieldToChange = record.FieldToChange.trim();
  record.FieldToChange = record.FieldToChange.replace('ß','ss');
  ...
}

使用这种方法,您不需要任何客户端代码,因为在服务器上所做的所有更改都会自动同步回客户端。