У меня есть массив строк, связанных с входными элементами:Aurelia: Удаление элементов массива при изменении на пустое значение
<div repeat.for="i of messages.length">
<input type="text" value.bind="$parent.messages[i]">
</div>
Мне нужно удалить элемент, когда содержание ввода удаляются, без использования грязной проверки.
Это звучит просто: просто удалите элемент, который имеет пустое значение из обработчика input.delegate, к сожалению, это не работает из-за Aurelia bug #527. Вот суть, которая пробует этот подход: https://gist.run/?id=e49828b236d979450ce54f0006d0fa0a
Я попытался обойти ошибку, используя queueTask, чтобы отложить удаление элемента массива, но безрезультатно. И так как разработчики закрыли ошибку, потому что, по их словам, это дубликат совершенно не связанной проблемы, я думаю, что она не будет исправлена в ближайшее время.
У меня нет идей, как реализовать это, поэтому любые предложения приветствуются.
Что вы подразумеваете под «без использования грязной проверки»? как вы уверены, что здесь грязная проверка? это работает на данный момент, и вы просто хотите оптимизировать свой код, или он вообще не работает? –
Я попытался сделать это без грязной проверки (см. Связанный смысл), и он не работает из-за ошибки Aurelia. Грязная проверка будет искать массив каждые 100 мс и удалять любые пустые элементы, это сработает, но я хочу этого избежать. –
см. [Это сообщение в блоге] (http://ilikekillnerds.com/2015/10/observing-objects-and-arrays-in-aurelia/), или [этот пост stackoverflow] (http://stackoverflow.com/a/32019971/547020). –