好吧,我有一个tabview,其中包含一些页面,第一页和第二页从Web上获取数据并以gridview的形式显示。由于两个页面的UI完全相同,因此我只想在其各自的.js /.ts文件中使用一个.xml文件。并使用Tabview中的框架在框架组件中显示某些条件的同一页面,例如
<Frame id="firstFrame" defaultPage="home/home-page" isPage='1' />
,然后在我各自的.js页面中使用
function pageLoaded(args) {
page = args.object;
condition = page.frame.isPage
viewModel = new Observable();
viewModel.set("items", '');
page.bindingContext = viewModel;};
我将“条件”存储在全局范围变量中。并在需要条件渲染的任何地方使用它。我还将视图模型存储在全局范围内。
它很精细...有点...您会看到,这两个页面被设置为显示不同的数据。但是出于圆顶的原因,第一页显示空白页[无数据],第二页正常工作。.
更奇怪的是,当我调用一个函数来更新第1页中的数据时,它会在第2页中对其进行更新,如果我重新启动应用程序,并在第2页中调用相同的功能,则第一页仍为空白(记住它们是同一页),有时会更新第一页。
是否两个页面都使用相同的Observable(项目)? ,如果是这样,我应该如何将Observable绑定到它们各自的页面?
哦,我还应该提到我使用“ exports.functioname =函数名”来调用函数。可能是这样吗?我看到合适的方法是将其绑定到“页面视图模型”文件中。可以吗?
答案 0 :(得分:0)
看看您的代码,您所面对的是完全可以预期的。名为condition
的变量并不特定于页面实例,因此它仅保留分配给它的最后一个值。
在加载第2页时,condition
变量将被新值覆盖,并且再也不会更新。