2011-09-26 36 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!