开发者

Updating array values (Appcelerator Titanium Mobile)

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

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜