2016-03-18 5 views
1

Как я могу получить текущий экран, над которым я работаю? Например, у меня есть slidingrawer, содержащий кнопки для перехода на другую страницу. Когда я нахожусь на определенной странице (О странице), и когда я нажимаю кнопку, чтобы перейти к О странице, я хочу просто закрыть slidedrawer, если она находится на одной странице.Nativescript Получить текущую страницу

Моя идея состоит в том, чтобы получить текущую страницу и просто сравнить ее, но я не знаю, как это сделать.

Примечание. Меню содержимого slidedrawer является настраиваемым компонентом.

ответ

4

Существует несколько способов решения этой проблемы. Проще всего установить nativescript-Dóm плагин, а затем вы можете сделать это на самом деле просто:

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

или даже лучше, если вы назначили свой SlideDrawer идентификатор, вы можете сделать

<!-- 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 
} 
Смежные вопросы