开发者

Updating array values (Appcelerator Titanium Mobile)

开发者 https://www.devze.com 2023-02-09 16:53 出处:网络
I\'m using both the 1.5.1 and 1.6.0 to test my apps on my OS X. I\'m trying to update some values in this array:

I'm using both the 1.5.1 and 1.6.0 to test my apps on my OS X.

I'm trying to update some values in this array:

var myTab = [
{title:'foo1',value:'bar1'},
{title:'foo2',value:'bar2'}
];

If I update a value field in this array, it doesn't do it (which isn't normal):

Titanium.API.info('Before :' + myTab[0].value);
myTab[0].value = 'updated!';
Titanium.API.info('After :' + myTab[0].value);

It displays 'bar1' instead of 'updated!'. What I tried next is to put the tab as a property list:

Titanium.App.Properties.setList('propTab',myTab);

And then, I tried to do the same thing:

Titanium.API.info('Before :' + Titanium.App.Properties.getList('propTab')[0].value);
Titanium.App.Properties.getList('propTab')[0].value = 'updated!';
Titanium.API.info('After :' +  Titanium.App.Properties.getList('propTab')[0].value[0].value);

Same result: It displays 'bar1' instead of 'updated!'.

Is there another sol开发者_StackOverflow社区ution?

Thank you,

Regards


I've run into this sort of behavior before. While I never ascertained the cause, I found a workaround: you need to set myTab[0] to a value, and not myTab[0].value to a value. So, thus:

myTab[0] = {title: myTab[0].title, value: "updated!"};

Why, I do not know... I should probably figure it out.


You need to mention it as an array element then it should work. For e.g., in your case you may modify as foolows

myTab[0]['value'] = 'updated!';
0

精彩评论

暂无评论...
验证码 换一张
取 消