如何在客户端(App Maker)创建项目时检测错误
How to detect an error in item creation on the client side (App Maker)
我正在创建一个应用程序来存储日程安排,我不希望两个日程安排具有相同的日期。为了解决这个问题,我将这段代码 (javascript) 添加到 onBeforeCreate()
和 onBeforeSave()
事件中。
var query = app.models.DataSource.newQuery(); // New query
query.filters.date._equals = record.date; //Search for a record that has the same
if (query.run().length) {
throw new Error("There is already a schedule on that date"); // Throw an error
}
这对于防止重复条目非常有用,但我将如何在客户端检测到它并将其报告给用户?
这可能是一个快速修复,但我们将不胜感激 :)
谢谢!!
首先,您需要将数据源字段修改为唯一。
您需要转到 ModelName > FieldName > Advanced:
然后,当在客户端创建项目时,比方说,使用一个按钮小部件,其数据源设置为创建模式,然后在onClick事件处理器,使用如下:
widget.datasource.createItem({
success: function(record){
console.log(record._key);
},
failure: function(error){
var err = error.toString();
if(err.indexOf("Duplicate entry") > -1){
alert("There is already a schedule on that date");
} else {
alert(error.toString());
}
}
});
更多信息,建议您查阅official documentation。
我正在创建一个应用程序来存储日程安排,我不希望两个日程安排具有相同的日期。为了解决这个问题,我将这段代码 (javascript) 添加到 onBeforeCreate()
和 onBeforeSave()
事件中。
var query = app.models.DataSource.newQuery(); // New query
query.filters.date._equals = record.date; //Search for a record that has the same
if (query.run().length) {
throw new Error("There is already a schedule on that date"); // Throw an error
}
这对于防止重复条目非常有用,但我将如何在客户端检测到它并将其报告给用户?
这可能是一个快速修复,但我们将不胜感激 :)
谢谢!!
首先,您需要将数据源字段修改为唯一。
您需要转到 ModelName > FieldName > Advanced:
然后,当在客户端创建项目时,比方说,使用一个按钮小部件,其数据源设置为创建模式,然后在onClick事件处理器,使用如下:
widget.datasource.createItem({
success: function(record){
console.log(record._key);
},
failure: function(error){
var err = error.toString();
if(err.indexOf("Duplicate entry") > -1){
alert("There is already a schedule on that date");
} else {
alert(error.toString());
}
}
});
更多信息,建议您查阅official documentation。