testingWithAtForNames: { name: string }[] = [{ name: '' }]
onTestingWithAtForChanged() {
this.testingWithAtForNames = [
...this.testingWithAtForNames.filter(x => x.name.length), // remove entries with zero length
{ name: '' } // add empty entry to bottom
]
}
// ngFor
testingWithNgForNames: { name: string }[] = [{ name: '' }]
onTestingWithNgForChanged() {
this.testingWithNgForNames = [
...this.testingWithNgForNames.filter(x => x.name.length), // remove entries with zero length
{ name: '' } // add empty entry to bottom
]
}
< /code>
и вот файл .html < /p>
testing with @for
@for (testingWithAtForName of testingWithAtForNames; track $index) {
}
testing with Ngfor
< /code>
Вот что ожидается: < /p>
- Чтобы запустить, есть только одно пустое поле редактирования текста < /li>
Как только пользователь введет что -то в поле «Пустое текст», новое пустое поле редактирования текста появится ниже. Появится < /li>
Если в любое время пользователь удаляет весь текст из любого поля редактирования текста, то теперь, что в настоящее время пустое текстовое редактирование будет удалено из отображения, и все другие поля редактирования текста будут двигаться вверх < /li>
< /ul>
Вот что происходит в сценарии NGFOR (этот код, кажется, хорошо смену следования). /> Форма 1 пуста
"" < /li>
< /ul>
< /li>
Пользовательская буква «A» в форме 1, вызывая пустую форму 2, чтобы появиться
«a» < /li>
"< /br /> ul> ul>” < /br /> < /br /> ul> " /> < /li>
Пользователь Типит буква «A» в форме 2, вызывая пустую форму 3, появляющуюся
"a" < /li>
"a" < /li>
"< /li>
< /ul>
< /li>
aempt a aemptive aemptive aemptive aempting to be removed and everything left to "move up"
"a" - ""
Here's what happens in the @for Сценарий (этот код кажется нарушенным и, кажется, не обнаруживает изменений, а также ngfor) < /p>
Форма 1 пуст
"" < /li>
< /ul>
< /li>
типа пользователя "типа" A "в форму 1, вызывающая 1 -й форме 2,
/> "a" < /li>
"" < /li>
< /ul>
< /li>
Пользователь типа «A» в форме 2, вызывая пустую форму 3, чтобы появиться
«A» < /li>
»< />
" < /li>
"
" < /li>
/> < /ul>
< /li>
Пользователь удаляет букву «a» из формы 1, но вместо формы 1 удаляется и все остальное просто «перемещение», что теперь есть неправильно 2 пустые формы
»< /li>
» < /li>
< /br /> < /br /> < /br />
< /br />
< /br />
< /br />
Когда я печатаю содержимое переменной testingWithAtfornames < /code> на консоли, я вижу, что есть правильно 2 записи, и у первых есть «a», а второй пуст, но угловался не правильно, или он не обнаружил, что, по -видимому, это не так. формы Так как в приведенных выше примерах я только что использовал букву «A» во всех формах. Если я использовал текст «asdf» во всех формах, то аналогично сценарий @For все равно сломается. Однако, если я ввел что -то другое в каждую форму, то код работает, как и ожидалось. Так что, как если бы я написал «QWER» в первой форме, то «ASDF» во второй форме, то когда я иду, чтобы удалить текст «QWER», он правильно удалит «QWER» с дисплея и правильно показывает оставшиеся «ASDF» и «». угловой. Очевидно, что между @For и NGFOR есть что -то другое, но я не уверен, что это ошибка, о которой я должен сообщить, или было какое -то предполагаемое изменение в том, как @FOR меняет обнаружение, которое мне не хватает.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... -detection