Binding the template variable #contactForm
appears to cause a name conflict and blow up the template processor as it tries to turn the attached template variable into an NgForm
on the backend. Everywhere I have seen model driven forms used there is no template variable binding on the form, whereas there is a #tv="ngForm"
utilized in template driven forms. It appears there was a miss on the mixing of the two forms approaches which resulted in the error.
Simply removing it will resolve the issue.