如何将 item._key 从 listPage 移交到第一个 editPage 和第二个 editPage
How to handover item._key from a listPage to a first editPage and second editPage
我创建了一个包含评论列表的页面。如果用户点击一个名字,他将被引导到一个页面,如果需要,他可以在该页面上编辑评论详细信息。
为了实现这一点,我采用了旅行批准模板中的方法。
列表中的名称是 link 个包含 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)的评论详细信息,而不是列表中具有活动索引的人的评论详细信息。如果用户在评论详细信息页面中单击 link "personal information",他将被定向到另一个编辑页面,在那里他可以看到此人的其他信息。为此,我通过将另一个目标页面添加到历史记录来简单地修改模板中的方法。
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);
}
但是当我复制评论详情页面link中的按钮方法时,它不起作用。我总是在我的列表中看到第一个名字,而不是我点击的那个。我该如何解决?
问题已解决。尽管两个页面都在同一个模型上,但它们不在同一个数据源上。将它们设置为相同的数据源后,一切正常。
我创建了一个包含评论列表的页面。如果用户点击一个名字,他将被引导到一个页面,如果需要,他可以在该页面上编辑评论详细信息。
为了实现这一点,我采用了旅行批准模板中的方法。
列表中的名称是 link 个包含 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)的评论详细信息,而不是列表中具有活动索引的人的评论详细信息。如果用户在评论详细信息页面中单击 link "personal information",他将被定向到另一个编辑页面,在那里他可以看到此人的其他信息。为此,我通过将另一个目标页面添加到历史记录来简单地修改模板中的方法。
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);
}
但是当我复制评论详情页面link中的按钮方法时,它不起作用。我总是在我的列表中看到第一个名字,而不是我点击的那个。我该如何解决?
问题已解决。尽管两个页面都在同一个模型上,但它们不在同一个数据源上。将它们设置为相同的数据源后,一切正常。