我创建了一个包含评论列表的页面 . 如果用户点击名称,他将被定向到一个页面,在那里他可以根据需要编辑评论详细信息 .
为了实现这一目标,我已经调整了旅行批准模板中的方法 .
列表中的名称是包含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 回答
问题已经解决 . 虽然两个页面都在同一个模型上,但它们不在同一个数据源上 . 将它们设置为相同的数据源后,一切正常 .