Nativescript:在加载函数之外获取页面对象

Nativescript : get page object outside loaded function

javascript:

...
//I want use page object outside the loded function
var page

exports.loaded =function (args) {
    page = args.object;
    page.bindingContext = viewModel;

    //there is already a 'grid9' element in XML file 
    var gridLayout = page.getViewById("grid9");

    if(gridLayout ) alert("yes");//<============it works
}
if (page.getViewById("grid9"))  alert("yes");//<========== got error

我想在 loaded function.In 之外使用 page 对象,pageloaded 函数之外定义,然后 page 变量在函数中获取真正的 page 对象,所以我现在可以在函数外使用 page 对象。 但是,我得到了 undefined 的错误。而且,没有第二个 if 语句,它运行良好。 如果我遇到变量范围错误或其他问题?

你的 if 的第一个问题是它会在加载函数之前执行,因为它在函数之外,所以它会在加载文件时立即执行,所以你要么把那个 if 放在某个地方运行,要么尝试使用它来获取加载函数之外的当前页面

var frameModule=require("ui/frame");
var page = frameModule.topmost().currentPage;

但如果它还在外面 exports.foo = function(){} 则不确定它是否会分页对象