Как обнаружить ошибку при создании элемента на стороне клиента (App Maker) - PullRequest
0 голосов
/ 23 октября 2018

Я создаю приложение для хранения расписаний и не хочу двух расписаний с одинаковой датой.Чтобы бороться с этим, я добавил этот код (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
}

Это прекрасно работает для предотвращения дублирования записей, но как бы я обнаружил это на стороне клиента и сообщил об этом пользователю?

Еговероятно, быстрое решение, но любой вклад будет принята с благодарностью:)

Спасибо !!

1 Ответ

0 голосов
/ 23 октября 2018

Во-первых, вам нужно изменить поле источника данных, чтобы оно было уникальным.
Вам нужно будет перейти к ModelName> FieldName> Advanced :

enter image description here

Затем при создании элемента нана стороне клиента, скажем, например, с помощью виджета кнопки, источник данных которого установлен в режиме создания , затем в обработчике события 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());
    }
  }    
});

Для получения дополнительной информации я рекомендую вам обратиться к официальной документации .

...