在XPages移动控件中转换时如何更新bean或作用域变量

在XPages移动控件中转换时如何更新bean或作用域变量,xpages,xpages-extlib,Xpages,Xpages Extlib,在转换到移动页面之前,我在尝试设置移动页面上的值时遇到问题 我有一个基于Tony McGuckin的OpenNTF XSnippet的脚本块 因此,当我转换到ID为“appPage3”的页面时,如果JSON-RPC服务无效,我将调用方法“facilityCheckIn” 我试图在viewScope托管bean中设置该值,为了进行测试,我试图设置一个普通的viewScope变量 据我所知,手机页面并没有收到这些变化。它根本没有显示viewScope。我不知道是怎么回事。 我相信托管bean正在获得

在转换到移动页面之前,我在尝试设置移动页面上的值时遇到问题

我有一个基于Tony McGuckin的OpenNTF XSnippet的脚本块

因此,当我转换到ID为“appPage3”的页面时,如果JSON-RPC服务无效,我将调用方法“facilityCheckIn”

我试图在viewScope托管bean中设置该值,为了进行测试,我试图设置一个普通的viewScope变量

据我所知,手机页面并没有收到这些变化。它根本没有显示viewScope。我不知道是怎么回事。 我相信托管bean正在获得它的价值,但这就像页面首先被呈现一样。移动页面上的值第一次为空 然后,如果我刷新,或者退出并返回显示的页面。我尝试通过SSJS和EL访问bean

我真的需要能够设置移动页面的值,因为我进入和离开一个页面转换

如有任何建议,将不胜感激

谢谢

我已经更新了下面的代码以显示完整的移动页面。我还没有为自定义控件包含任何应该显示字段的内容,但如果需要可以显示

我已经制作了一个6分钟的视频来演示这个问题,并显示了所有相关的代码

谢谢



不久前,我遇到了一个类似的问题,我不得不创建另一个XPage(使用单一应用程序)来导航,而不是在同一个单一应用程序中跳转到appPage

不理想,但是,它也解决了另一个问题,因为我想能够直接跳转到有问题的页面(使用二维码)…;-)

/约翰


PS.将在此处跟踪您的发现,看看是否可以完成。移动控件的这种问题(我也有一些关于typeahead的问题)有点把我推向了其他框架的方向,至少现在…

David。。。。你说刷新确实解决了这个问题,Stephan还提到,在RPC返回结果之前,会转换到新页面,我认为这是正确的。因此,在您的回调中,虽然不是最佳的,但至少可以让您继续前进,但您可以使用以下命令进行部分刷新:

XSP.partialRefreshGet("#{id:appPage3}",{});
//I've had partial success with the "#{id:appPage3}" call, so I usually use a full
// dojo query like:
var appPageId = dojo.query("[id$='appPage3']")[0].id

我不知道这是否能解决您的问题,但除了填充该值之外,似乎一切都正常工作。

好的,我相信我已经解决了这个问题。我使用Tony的XSnippet中的RPC控件时运气不佳。如果你离开了页面,但如果你进入了页面,那就不行了。这似乎起到了预期的作用

要处理输入,需要将代码放在标题的呈现事件中


我在上面的代码中没有看到您的呼叫?猜测一下:RPC调用是异步的,因此在返回结果之前已经转换到新页面。而且被转换的页面也不会与服务器通信。我的理解是,这就是单页应用的全部要点:最大限度地减少从服务器到服务器的流量。您在这里试图实现什么?或者,更确切地说,如果它起作用,最终用户将如何描述该行为?JSON-RPC+dojo.connect是您的“方式”。。。你的“什么?”:)蒂姆-目标是在过渡到它时设置一个虚拟页面。因此,如果我进入页面设置一个bean或作用域变量,那么正在打开的页面(使用resetContent=true)可以使用任何设置。例如,后退按钮-我想计算它以转到第一页-它可能会改变。举个例子。我想计算很多。基思-好主意-但我无法让它工作。导航中断。注意。只有在重置appPage内容时,才会触发呈现事件。
XSP.partialRefreshGet("#{id:appPage3}",{});
//I've had partial success with the "#{id:appPage3}" call, so I usually use a full
// dojo query like:
var appPageId = dojo.query("[id$='appPage3']")[0].id