Nativescript获取当前页面

时间:2016-03-18 01:07:03

标签: nativescript

如何获取我正在使用的当前屏幕?例如,我有一个包含按钮的slidedrawer,可以导航到另一个页面。当我在某个页面(关于页面)上,当我点击按钮导航到关于页面时,我想关闭slidedrawer,如果它在同一页面上。

我的想法是获取当前页面并进行比较,但我不知道如何。

注意:slidedrawer内容菜单是自定义组件。

1 个答案:

答案 0 :(得分:5)

有几种方法可以解决这个问题。最简单的方法是安装nativescript-dom插件,然后你可以简单地执行此操作:

// This will return an array of elements that are SlideDrawer's.
var slideDrawers = getElementsByTagName('SlideDrawer'); 

甚至更好的是,如果您已将SlideDrawer指定为ID,则可以执行

<!-- Declarative XML -->  
<SlideDrawer id="myId">...</SlideDrawer>

// JS: Will return a single element that matching the id.
var mySlideDrawer = getElementById('myId');

但是,如果您只是不想使用任何帮助程序,并且希望直接访问currentPage,则可以执行以下操作:

var frame = require('ui/frame');
var myPage = frame.topmost().currentPage;

请注意;当导航生效时,currentPage将反映旧页面,直到触发navigatedTo事件为止,此时currentPage实际更新为currentPage。但是,如果您在任何导航事件( NavigatingTo,NavigatedTo,Loaded,Unloaded )期间查找当前页面,则会将当前页面中的每个事件作为对象的一部分进行传输。

exports.onNavigatedTo = function(args) {
  var page = args.object;
  // do what you want with the current page variable
}