1
如何获取我正在处理的当前屏幕?例如,我有一个包含按钮的sliderrawer,可以导航到另一个页面。当我在某个页面上时(关于页面),当我点击按钮导航到关于页面时,如果它位于同一页面上,我想关闭滑动页眉。Nativescript获取当前页面
我的想法是,要获得当前页面,只是比较它,但我不知道如何。
注意:slidesrawer内容菜单是一个自定义组件。
如何获取我正在处理的当前屏幕?例如,我有一个包含按钮的sliderrawer,可以导航到另一个页面。当我在某个页面上时(关于页面),当我点击按钮导航到关于页面时,如果它位于同一页面上,我想关闭滑动页眉。Nativescript获取当前页面
我的想法是,要获得当前页面,只是比较它,但我不知道如何。
注意:slidesrawer内容菜单是一个自定义组件。
有几种方法可以解决这个问题。最简单的就是安装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
}