Я хочу использовать управляемые шаблоном формы в Angular 2, и мне нужно получить доступ к текущему ngForm в моей директиве, как локальное свойство, и я не хочу передавать их в качестве параметра.Angular 2 Template Driven Form access ngForm в компоненте
моя форма выглядит следующим образом:
<form #frm="ngForm" (ngSubmit)="save(frm)">
<input [(ngModel)]="user.name" #name="ngForm" type="text">
<a (click)="showFrm()" class="btn btn-default">Show Frm</a>
</form>
и в моем компоненте
@Component({
selector: 'addUser',
templateUrl: `Templates/AddUser`,
})
export class AddUserComponent implements CanDeactivate {
public user: User;
// how can I use this without defining the hole form
// in my component I only want to use ngModel
public frm : ngForm | ControlGroup;
public showFrm() : void{
//logs undefined on the console
console.log(this.frm);
}
}
Возможно ли это, потому что мне нужно проверить, если myFrm ист Валиде или была затронута в функции, где я не может передать текущую форму в качестве параметра, например «routerCanDeactivate», и я не хочу использовать форматированные формы, слишком много для написания кода, и мне нравится привязка модели старой школы ng1.
Я обновил свой пример и frm не известен в компоненте.
Я создал запрос функции на GitHub: https://github.com/angular/angular/issues/8538 – squadwuschel
Если 'AddUserComponent' быть помещены в форме в качестве дочернего элемента? ' <форма # FRM = "ngForm"(ngSubmit) = "сохранить (FRM)"> ... <надстройка пользовательского компонента ..> надстройка пользователь компонент ..> ' – Felix