Настройка списка свойств с помощью Titanium Appcelerator - PullRequest
1 голос
/ 28 февраля 2011

Я работаю с последней версией Mobile SDK (1.6) для OS X. У меня есть этот фрагмент кода:

var globalArray = [
        {title:'foo',value:'yes'},
        {title:'bar',value:'no'}
]; 

Titanium.App.Properties.setList('globalArrayProperty',globalArray);
Titanium.App.Properties.getList('globalArrayProperty')[0].value = 'it works!';
Titanium.API.info('first value : ' + Titanium.App.Properties.getList('globalArrayProperty')[0].value);

Я упростил его, чтобы объяснить, где стоит проблема.Итак, я создаю массив с парой объектов.Затем я устанавливаю свойство в зависимости от этого массива, а затем влияю на новое значение для первого объекта.Но когда я вызываю display свойство, вместо того, чтобы показывать 'это работает!'строка, она показывает начальное «да».

Я попытался добавить пару строк:

Titanium.App.Properties.setList('globalArrayProperty',globalArray);
var arr = Titanium.App.Properties.getList('globalArrayProperty');
arr[0].value = 'it works!';
// This works
Titanium.API.info('first value with arr: ' + arr[0].value);
// This doesn't work
Titanium.API.info('first value : ' + Titanium.App.Properties.getList('globalArrayProperty')[0].value);

Таким образом, промежуточная переменная 'arr' получает свойство, устанавливает его, но не можетприменить изменение к свойству.

Я что-то упустил?

Спасибо,

С уважением.

1 Ответ

3 голосов
/ 28 февраля 2011

я думаю, вам нужно снова установить список свойств после обновления массива

Titanium.App.Properties.setList('globalArrayProperty',globalArray);
var arr = Titanium.App.Properties.getList('globalArrayProperty');
arr[0].value = 'it works!';
// This works
Titanium.API.info('first value with arr: ' + arr[0].value);

// save changes to property list
Titanium.App.Properties.setList('globalArrayProperty',arr);

// This doesn't work
Titanium.API.info('first value : ' + Titanium.App.Properties.getList('globalArrayProperty')[0].value);
...