Nativescript 获取当前页面
Nativescript Get Current Page
如何获取我正在处理的当前屏幕?例如,我有一个 slidedrawer,其中包含用于导航到另一个页面的按钮。当我在某个页面(关于页面)上时,当我点击按钮导航到关于页面时,如果它在同一页面上,我只想关闭抽屉。
我的想法是获取当前页面并进行比较,但我不知道该怎么做。
注意:slidedrawer 内容菜单是自定义组件。
有几种方法可以解决这个问题。最简单的是安装 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
}
如何获取我正在处理的当前屏幕?例如,我有一个 slidedrawer,其中包含用于导航到另一个页面的按钮。当我在某个页面(关于页面)上时,当我点击按钮导航到关于页面时,如果它在同一页面上,我只想关闭抽屉。
我的想法是获取当前页面并进行比较,但我不知道该怎么做。
注意:slidedrawer 内容菜单是自定义组件。
有几种方法可以解决这个问题。最简单的是安装 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
}