2016-03-18 203 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 
}