Возврат созданного ключа элемента - PullRequest
0 голосов
/ 11 ноября 2018

Мое приложение создает новый элемент, и я хочу получить ключ для использования в сценарии сервера. Переменная data возвращает ноль. Вот что у меня есть:

function addItem(addButton) {
  var addItemPage = addButton.root;
  if (!addItemPage.validate()) {
    return;
  }
  var props = addItemPage.properties;
  var itemDs = addItemPage.datasource; 
  props.Creating = true;
  itemDs.saveChanges({
    success: function(key) {
      props.Creating = false;
      if (app.currentPage !== app.pages.EditItem) {
        return;
      }     
      var newProjectItem = itemDs.item;
      newProjectItem._loadHistory();
      gotoEditItemPage(newProjectItem._key, true);
      return newProjectItem;      
    },
    failure: function(error) {
      props.Creating = false;
      console.error(error);
    }
  });
  gotoEditItemPage(); 
  var data = app.datasources.ProjectItems.item._key;     
  google.script.run.withSuccessHandler(function(value){       
     alert("Created");       
  }).createDoco(data);
}

1 Ответ

0 голосов
/ 11 ноября 2018

Это не очень удобно, но я исправил это, создав новую функцию:

function addItem(addButton, key) {
  var addItemPage = addButton.root;
  if (!addItemPage.validate()) {
    return;
  }
  var props = addItemPage.properties;
  var itemDs = addItemPage.datasource; 
  props.Creating = true;
  itemDs.saveChanges({
    success: function() {
      props.Creating = false;
      if (app.currentPage !== app.pages.EditItem) {
        return;
      }     
      var newProjectItem = itemDs.item;     
      newProjectItem._loadHistory();
      gotoEditItemPage(newProjectItem._key, true);
      var key = newProjectItem._key;
      value(key);       
    },
    failure: function(error) {
      props.Creating = false;
      console.error(error);
    }  
  }); 
  gotoEditItemPage(); 
function value(record){   
  var data = record;       
  google.script.run.withSuccessHandler(function(value){       
     alert("Created");       
  }).createDoco(data);
 }
}
...