В моем проекте Titanium Alloy Appcelerator, я пытаюсь переопределить model.destroy()
, чтобы удалить фотографии, связанные с моделью. Мой код удаляет фотографии просто отлично, но на самом деле не удаляет модель. Что я делаю не так?Overriding destroy(), чтобы удалить фотографии, связанные с моделью, не удаляет сама модель
_.extend(Model.prototype, {
destroy: function (options) {
// override default destroy method to also remove photos
console.log('destroying the model');
var model = this;
options = options ? _.clone(options) : {};
var photos = JSON.parse(model.get('photos'));
photos.forEach(function (photo) {
console.log("Deleting photo: " + photo);
var f = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory, photo);
f.deleteFile();
});
model.trigger('destroy', model, model.collection, options);
}
});
Я вижу операторы журнала консоли, и фотографии удаляются. Но модель остается.
Некоторые вещи, которые я пробовал, но безуспешно:
В мой контроллер, вызывая оба эти:
model.destroy();
collection.remove(model);
// also collection.remove([model]);
Я попытался добавить это мой расширенный уничтожить функцию, но он не сделал работа
...
f.deleteFile();
});
model.collection.remove(model);
// and model.collection.remove([model]);
model.trigger('destroy', model, model.collection, options);
Приведенная ниже модель разрушена, но мой код не работает, и фотографии не удаляются.
_.extend(Model, {
...
Это, кажется, работает как есть, https://jsfiddle.net/nikoshr/Lyvn6dep/, по крайней мере, без титана – nikoshr
кажется, конкретно не только титан, но, возможно, на прошивке, а также. – skypanther