【问题标题】:how to update global variable in titanium?如何更新钛中的全局变量?
【发布时间】:2011-09-26 08:52:28
【问题描述】:

顺便说一下,我在更新我的全局数组时遇到了一些问题。

这是我的代码:

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"];

请帮帮我,我不知道我在这里做错了什么,

谢谢,

【问题讨论】:

  • 所有操作都在同一个文件中执行吗?简要概述您的文件结构(例如 Ti.includes 等)

标签: arrays global-variables titanium appcelerator-mobile


【解决方案1】:

你的代码是正确的,但是你不应该扩展 Ti 对象,因为这样的意外事情会发生。创建您自己的对象,它会起作用。

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

等等。

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

【讨论】:

    【解决方案2】:

    我同意 Jeff 的观点,但是如果您希望上述方法起作用,则需要更新整个数组,不能只更新元素。

    所以将数组读出到一个新变量中,更新特定元素,然后再次设置属性

    【讨论】:

      【解决方案3】:

      在 App.js 中:

      Ti.App.my_variable = 0;
      

      在 some_other_page.js 中:

      Ti.App.my_variable = 101;
      

      在 yet_another_page.js 中:

      alert( Ti.App.my_variable );
      

      这将提醒 101 !!

      【讨论】:

        猜你喜欢
        • 2022-09-22
        • 1970-01-01
        • 2013-06-22
        • 2020-07-03
        • 1970-01-01
        • 2014-07-20
        • 2019-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多