Я пытаюсь сделать что-то с вставленной строкой, которая работает, но когда я пытаюсь удалить содержимое, я не могу этого сделать, поскольку вставленный контент не привязывается к модели ввода.
Как можно очистить ввод от вставленного содержимого?
Я попытался привязать контент к модели, а затем удалить модель, но это все равно оставит фактическое вставленное содержимое в объекте события, поэтому это не решение.
Также попытался очистить ввод напрямую с помощью input.value = ''
, но безуспешно.
Разметка:
<input #input [(ngModel)]="newTag[labelKey]" (paste)="onPaste($event)">
Функция:
onPaste(e: any) {
let content = e.clipboardData.getData('text/plain');
// Do stuff
// Then clear pasted content from the input
}
1 ответ
Очистите переменную, к которой вы привязали модель:
onPaste(e: any) {
let content = e.clipboardData.getData('text/plain');
// Do stuff
setTimeout(() => {
this.newTag = "";
}, 0);
}
По какой-то причине текст остается на входе, при синхронном вызове this.newTag = ""
и если вы установите его на this.newTag = "foo"
, текст на входе будет fooPASTEDTEXT
.
Plunker в качестве рабочего примера.
Похожие вопросы
Новые вопросы
angular
Вопросы об Angular (не путать с AngularJS), веб-фреймворке от Google. Используйте этот тег для вопросов Angular, которые не относятся к отдельной версии. Для более старой веб-инфраструктуры AngularJS (1.x) используйте тег AngularJS.