У меня есть событие нокаута, связанное с кнопкой:события не работает после очистки наблюдаемого массива
<button type="button" id="uBtn" class="btn btn-info btn-lg" data-preview-file-type="text" data-bind="
click: upload,
visible: files().length > 0 && !anyErrors() ">
</button>
Когда я удалить один элемент из моего наблюдаемого массива в моей модели представления каждого по-прежнему работает правильно:
this.removeFileItem = function (elem) {
self.files.remove(elem);
};
. не
<button type="button" class="close" data-bind="click: $parent.removeFileItem, visible: !isUploading()">×</button>
Его только тогда, когда я стараюсь, чтобы удалить все элементы, которые я начать работать в вопросах:
this.clearUploads = function() {
if (self.uploaded && self.files().length > 0) {
//self.files.removeAll();
//self.files([]);
/*for (var i = 0; i < self.files().length; i++) {
self.files.remove(self.files()[i]);
}*/
ko.utils.arrayForEach(self.files(), function(item) {
self.files.remove(item);
});
self.upload = false;
}
}
Как только я очистить наблюдаемый массив мой обработчик щелчка на моем «uBtn» больше не работает. Как вы можете сказать выше, я пытаюсь очистить массив различными способами, и это не изменило ситуацию. Даже если есть только 1 элемент для очистки, и я по существу очищаю его так же, как и с self.files.remove()
, тогда, если я очищу его с помощью функции clearUploads, то еще будет работать, но если я очищу его с помощью 'removeFileItem, тогда все будет в порядке.
Большое спасибо. Ты прав. Я топал на своем собственном мероприятии. Я предполагаю, что это моя ошибка в том, что вы назвали переменную так близко к названию события. Я думаю, мне нужно переименовать его. – coding4fun