gpt4 book ai didi

google-app-maker - 如何在 App Maker 数据源中设置当前项目?

转载 作者:行者123 更新时间:2023-12-01 09:13:54 25 4
gpt4 key购买 nike

这似乎很基本,但我似乎无法弄清楚如何手动设置当前项目以从数据源中使用?

举例说明:我有一个表,我注意到当我选择一行来编辑字段时,该行的项目成为当前项目,所以如果我在该行上有一个导航到页面的链接,所选项目的行将是导航页面的 datasource.item。

但是,我还注意到,如果我只是将鼠标悬停在一行上,而不选择编辑字段,然后单击链接以导航到页面,它会加载之前选择/编辑的任何行的数据。因此,我想知道如何做到这一点,以便仅在鼠标上:over(或单击快捷方式而无需事先单击行中的另一个字段) datasource.item 将更新为鼠标经过的行要求首先编辑行上的字段。我希望这是有道理的。

非常感谢您的帮助。谢谢!

最佳答案

为什么会这样:

AM code: generate button click event
User code: handle button's click event
User code: navigate user to different page
AM code: destroy DOM of current page
AM code: build DOM for new page
-- dead code after this line
AM code: row click event handler
AM code: change datasource's current item

行的点击事件处理程序永远无法控制,因为行被用户的代码破坏了。

什么Morfinismo的解决方案呢?

AM code: generate button click event
User code: handle button's click event
AM code: row click event handler
AM code: change datasource's current item
-- moved lines
User code: navigate user to different page
AM code: destroy DOM of current page
AM code: build DOM for new page

这里有更多技术细节:Event Loop

在应用制作工具中这个问题可以解决

  1. setTimeout
  2. 在用户代码中强制更新当前项目
// button's onClick event handler
app.datasource.ListDatasource.selectKey(widget.datasource.item._key);
  1. CustomProperties
// button's onClick event handler
app.pages.ShowMeNext.properties.Key = widget.datasource.item._key;
app.showPage(app.pages.ShowMeNext);

// next page's onAttach event handler
app.datasources.RecordDatasource.filters._key._equals = app.currentPage.properties.Key;
app.datasources.RecordDatasource.load();
  1. URL parametershistory - 这种方法在大多数 template apps 中使用,因为它也在一定程度上实现了深度链接。
// button's onClick event handler
var params = {
key: widget.datasource.item._key
};
var page = app.pages.ShowMeNext;
app.showPage(page);
google.script.history.replace(null, params, page.name);

// next page's onAttach event handler
google.script.url.getLocation(function(location) {
app.datasources.RecordDatasource.filters._key._equals = location.parameters.key;
});
  1. 使用全局范围在页面之间传递值
// button's onClick event handler
window.key = widget.datasource.item._key;

// next page's onAttach event handler
app.datasources.RecordDatasource.filters._key._equals = window.key;

ListDatasource - 列表/网格/表格数据源

RecordDatasource - 专用于特定记录的数据源(单记录数据源)

关于google-app-maker - 如何在 App Maker 数据源中设置当前项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50104914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com