首页 文章

如何将item._key从listPage切换到第一个editPage和第二个editPage

提问于
浏览
0

我创建了一个包含评论列表的页面 . 如果用户点击名称,他将被定向到一个页面,在那里他可以根据需要编辑评论详细信息 .

enter image description here

为了实现这一目标,我已经调整了旅行批准模板中的方法 .

列表中的名称是包含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();
  });
}

切换到编辑页面非常有效 . 用户将看到他点击的人(例如:Mary Poppins)的评论详细信息,而不是列表中具有活动索引的人的评论详细信息 . 如果用户点击评论详细信息页面中的“个人信息”链接,他将被引导到另一个编辑页面,在那里他可以看到该人的其他信息 . 为此,我只是通过在历史记录中添加另一个目标页面来修改模板中的方法 .

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 回答

  • 0

    问题已经解决 . 虽然两个页面都在同一个模型上,但它们不在同一个数据源上 . 将它们设置为相同的数据源后,一切正常 .

相关问题