2016-03-18 205 views
1

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

我的想法是,要获得当前页面,只是比较它,但我不知道如何。

注意:slidesrawer内容菜单是一个自定义组件。

回答

4

有几种方法可以解决这个问题。最简单的就是安装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'); 

然而,如果你只是想不使用任何助手,你想直接访问当前页面的方法是:

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

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

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