2011-09-26 34 views
0

我在更新我的数组,这是全球性的方式有一些问题。如何更新钛中的全局变量?

这里是我的代码:

Ti.App.dinercolor=["#FF5A00","#007EFF","#dccdc0","#C2FF95","#A700FD","#dccdc0","#dccdc0","#5F9EA0","#dccdc0","#dccdc0","#22A000","#DCCDC0","#dccdc0","#FF003C","#dccdc0","#FF003C","#dccdc0","#22A000","#dccdc0","#FFF191"]; 

这就是我的全局数组,我可以从它从任何地方在应用程序访问数据。

问题是当我想更新像数组:

for(var q=0; q<Ti.App.dinercolor.length; q++){Ti.App.dinercolor[q] = '#dccdc0';}  

所以,数组我是手术多数民众赞成完成后预计是这样的:

Ti.App.dinercolor=["#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0","#dccdc0"]; 

,但不知何故,我我得到相同的阵列与更新,

Ti.App.dinercolor=["#FF5A00","#007EFF","#dccdc0","#C2FF95","#A700FD","#dccdc0","#dccdc0","#5F9EA0","#dccdc0","#dccdc0","#22A000","#DCCDC0","#dccdc0","#FF003C","#dccdc0","#FF003C","#dccdc0","#22A000","#dccdc0","#FFF191"]; 

请帮助我,我不知道w帽子我做错了这里,

谢谢,,

+0

是否都是在同一个文件中执行的操作?简要介绍一下你的文件结构(如Ti.includes等) – mkind

回答

3

你的代码是正确的,但你不应该延长钛对象作为这样意想不到的事情会发生。创建你自己的对象,它会工作。

myObj = {}; 
myObj.dinercolor = []; 

依此类推。

建议您将应用程序保存在一个上下文中,以便您可以从任何地方访问该对象。查看the forging titanium视频系列,了解一些最佳做法。

1

我同意杰夫,但是如果你想要上述方法的工作,你将需要更新整个数组,你不能只更新元素。

所以读出的数组出到一个新的变量,更新的特定元素,然后再次

0

设置属性在App.js:

Ti.App.my_variable = 0; 

在some_other_page.js:

Ti.App.my_variable = 101; 

In yet_another_page.js:

alert(Ti.App.my_variable); 

这将提醒101!