Я использую титан 3.3 и сплав 1.4.1. пользователь должен иметь возможность отправлять электронное письмо всем выбранным людям (эти люди находятся в массиве под названием «контакты») из адресной книги его телефона.Титан подчеркивает добавление удаляемых элементов из массива
Пользователь может выбрать и отменить выбор имен/электронных писем из своей адресной книги в виде списка (желтый фон в связанном скриншоте).
скриншот: http://s30.postimg.org/rsa82u9qp/listview_checkbox.png
правильная информация (адрес электронной почты) протягивается из адресной книги и добавляется к массиву контактов, когда один проверяет флажок. поэтому выбор с помощью флажка работает, но если отменить выбор флажка, адрес/элемент не будет удален из массива. увидеть последнюю запись журнала строку:
Ti.API.info (JSON.stringify (контакты) + "это соответствует массив на конце");
адрес электронной почты, который был выбран ранее и в настоящее время отменен, по-прежнему находится в массиве контактов.
Я также нашел это, но он не помогает, к сожалению.
код:
$.listview.addEventListener('itemclick',function(e){
var item = e.section.getItemAt(e.itemIndex);
if (item.properties.accessoryType == Ti.UI.LIST_ACCESSORY_TYPE_NONE) {
item.properties.accessoryType = Ti.UI.LIST_ACCESSORY_TYPE_CHECKMARK;
Ti.API.info(item.textEmail.text + " this is item.textEmail.textinside adding if");
var added = item.textEmail.text;
if (!_.contains(contacts,added)) {contacts.push(added);
}
Ti.API.info(JSON.stringify(added) + " item 1 added");
Ti.API.info(contacts + " this is matches array inside adding if");
}
else {
item.properties.accessoryType = Ti.UI.LIST_ACCESSORY_TYPE_NONE;
var removed = item.textEmail.text;
contacts = _.without(contacts, removed);
//contacts.splice(removed);
Ti.API.info(JSON.stringify(removed) + " item 2 removed");
Ti.API.info(JSON.stringify(contacts) + " this is contacts in removing if case");
}
e.section.updateItemAt(e.itemIndex, item);
Ti.API.info(JSON.stringify(contacts) + " this is matches array at the end");
});
любые идеи, что им делать неправильно здесь?
Hola Alejandro, большое спасибо за ваш быстрый ответ. ive попробовал опубликованный вами фрагмент - теперь он удаляет элементы, но не правильные. Я также заметил, что поле электронной почты (item.textEmail.text) является полем с несколькими значениями (некоторые из них имеют домашний и адрес электронной почты). я проверил, и исходный код работает (включая функцию удаления) с полями «recordID» и «fullName» (одно значение). – user24957
http://s30.postimg.org/tmpyrfrv5/array.png вот еще один снимок экрана – user24957
Splice возвращает удаленный элемент, извините за эту небольшую деталь. –