Кажется, я не могу избежать необходимости создавать динамические подформы в приложении, над которым я работаю. Подформа работает, как и ожидалось, и подформа показывает $invalid=true, когда один или несколько ее входов недействительны. Однако родительская форма имеет $invalid=false.
Я видел, как люди достигают вложенных форм, в которых недопустимые подформы делают недействительной родительскую форму, но я не могу сделать это динамически, не заключая динамическую компиляцию подформы в $timeout.
В приведенной выше ссылке я воссоздал сценарий. У меня три формы. Родительская форма, подчиненная форма, созданная одновременно с родительской формой, и динамически создаваемая подчиненная форма.
Если вы очистите ввод нижней существующей подформы, это сделает родительскую форму недействительной (родительская форма станет красной).
Если вы очистите ввод верхней динамической формы, родительская форма не станет недействительной (родительская форма останется зеленой).
Он начнет работать, если вы вставите метод addForm в $timeout:
// WORKS! : When you delete the dynamic added sub form input
// the parent form also becomes invalid
//timeout(addForm,0);
// FAILS! : When you delete the dynamic added sub form input text
// the parent form does NOT become invalid
addForm();
Здорово, что у меня есть обходной путь, но я хотел бы понять, зачем мне нужен тайм-аут $ и есть ли решение, которое позволяет избежать использования тайм-аута $.
$timeout
. Это довольно распространенный взлом. - person Tony   schedule 20.06.2015