我想在用户登录时显示一些选取器的选项。
所以我tried====>
我在alloy.js>>中添加了一个全局变量
var aux=0;在我的index.js I did>>中
loginReq.onload = function()
{
var json = this.responseText;
var response = JSON.parse(json);
if (response.logged == true)
{
aux=1;
homes.open();
$.index.close();
alert("Welcome " + response.name + ". Your email is: " + response.email);
}
else
{
alert(response.message);
}
};其他控制器home.js>>中的最后一个部件
Alloy.Globals.loading.hide();
var picker = Ti.UI.createPicker({
left:10,
top: 10,
height:50,
opacity:0.5, backgroundColor: "Black", borderRadius:"2"
});
var data = [];
data.push(Titanium.UI.createPickerRow({id:'0',title:'Mis cursos'}));
data.push(Titanium.UI.createPickerRow({id:'1',title:'Todos Cursos'}));
if(aux===1){
data.push(Titanium.UI.createPickerRow({id:'2',title:'Crear'}));
}
picker.add(data);问题是我尝试使用if(aux===1)或if(aux==1),但两者都不起作用……在picker中总是没有显示"Crear“。为什么?需要你的帮助!谢谢!
发布于 2014-11-04 11:47:06
问题是您没有在alloy.js中正确定义全局变量。
由于您在alloy.js中定义了var aux=0;,因此此变量仅在alloy.js中可用。要使其在其他文件中可用,请按如下方式定义它:
在alloy.js中:
Alloy.Globals.aux = 0;要在index.js和home.js中获取它,请使用:
var auxValue = Alloy.Globals.aux;因此,您的home.js将如下所示:
Alloy.Globals.loading.hide();
var picker = Ti.UI.createPicker({
left:10,
top: 10,
height:50,
opacity:0.5, backgroundColor: "Black", borderRadius:"2"
});
var data = [];
data.push(Titanium.UI.createPickerRow({id:'0',title:'Mis cursos'}));
data.push(Titanium.UI.createPickerRow({id:'1',title:'Todos Cursos'}));
if(Alloy.Globals.aux === 1){ //changed here
data.push(Titanium.UI.createPickerRow({id:'2',title:'Crear'}));
}
picker.add(data);注意:还要检查manage objects in alloy.js的正确方式
https://stackoverflow.com/questions/26726682
复制相似问题