Как передать item._key из спискаPage в первый editPage и второй editPage

Johan W. спросил: 28 марта 2018 в 04:51 в: appmaker

У меня есть страница, содержащая список отзывов. Если пользователь нажимает на имя, он будет перенаправлен на страницу, где он может редактировать данные обзора, если это необходимо.

Чтобы достичь этого, я адаптировал методы из шаблона утверждения поездки.

Имена в списке - это виджеты ссылок, которые содержат событие onClick, которое я просто адаптировал из шаблона, чтобы получить быстрый результат. Клиентский скрипт интегрирован в событие onAttach на странице.

//button method    
if (event.ctrlKey === false && event.metaKey === false) {
      event.preventDefault();
      app.showPage(app.pages.ReviewDetails);
      replaceUrlForEditRequest(widget.datasource.item._key);
    }//client script
function startLoadingEditRequestPage() {
  google.script.url.getLocation(function(location) {
    var requestId = location.parameter.requestId;
    var requestDs = app.datasources.Reviews;    if (requestDs.creating) {
      return;
    }    if (!requestId) {
      app.showPage(app.pages.Dashboard);
      return;
    }    if (requestDs.loaded && requestDs.query.filters._key._equals === requestId) {
      return;
    }    requestDs.unload();
    requestDs.query.filters._key._equals = requestId;
    requestDs.load();
  });
}

Передача на страницу редактирования отлично работает. Пользователь увидит рецензирование лица, на которое он нажал (например, Мэри Поппинс), а не тот, у кого есть активный индекс в списке. Если пользователь нажимает на ссылку "личная информация" на странице сведений о просмотре, он будет перенаправлен на другую страницу редактирования, где он может видеть другую информацию человека. Для этого я просто изменил метод из шаблона, добавив еще одну целевую страницу в историю.

function replaceUrlForEditRequest(requestId) {
  var params = {
    requestId: requestId
  };  google.script.history.replace(null, params, app.pages.EditReview.name);
  google.script.history.replace(null, params, app.pages.EditReviewDetails.name);
}

Но когда я дублирую метод кнопки в ссылке на странице сведений о просмотре, это не работает. Я всегда вижу первое имя в моем списке, а не тот, на который я нажал. Как я могу это исправить?


1 ответ

Есть решение
Johan W. ответил: 29 марта 2018 в 01:33

Проблема была решена. Хотя обе страницы были на одной модели, они не были на том же источнике данных. После установки их на тот же источник данных все работает нормально.