如何获得我正在处理的当前屏幕?例如,我有一个包含按钮的slidedrawer,可以导航到另一个页面.当我在某个页面(关于页面)上,当我点击按钮导航到关于页面时,我想关闭slidedrawer,如果它在同一页面上.
我的想法是获取当前页面并进行比较,但我不知道如何.
注意:slidedrawer内容菜单是一个自定义组件.
有几种方法可以解决这个问题.最简单的方法是安装nativescript-dom插件,然后你可以简单地做到这一点:
// This will return an array of elements that are SlideDrawer's.
var slideDrawers = getElementsByTagName('SlideDrawer');
Run Code Online (Sandbox Code Playgroud)
或者甚至更好的是,如果你已经为你的SlideDrawer分配了一个id,你可以这样做
<!-- Declarative XML -->
<SlideDrawer id="myId">...</SlideDrawer>
// JS: Will return a single element that matching the id.
var mySlideDrawer = getElementById('myId');
Run Code Online (Sandbox Code Playgroud)
但是,如果您只是不想使用任何帮助程序并且希望直接访问currentPage,则该方法是:
var frame = require('ui/frame');
var myPage = frame.topmost().currentPage;
Run Code Online (Sandbox Code Playgroud)
请注意; 当导航生效时,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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4458 次 |
| 最近记录: |