2016-10-24 5 views
4

Я создал форму с угловым 2, и теперь я хочу добавить некоторую проверку формы. Валидация работает, но теперь я хочу сосредоточиться на элементах формы. Возможно ли это в угловом 2. То, что я нашел до сих пор является то, что я могу сосредоточиться элемент с elementRef и видеообработки т.е.Угловой 2 Элемент формы фокуса

this.renderer.invokeElementMethod(this.el.nativeElement, 'focus'); 

Но я не хочу, чтобы получить доступ к элементу через elementRef вместо этого я хочу, чтобы установить фокус к одному из моих AbstractControl в моем объекте FormGroup. i.e

this.form.controls[ controlIndex ].focus 

Возможно ли это с угловым 2? Если нет, как установить фокус на элемент управления формы?

ответ

-2

подход будет создавать директивы и переходя this.form.controls[ controlIndex ].hasError к нему в качестве параметра:

@Directive({ 
    selector: '[focus-on-error]' 
}) 
export class FocusOnErrorDirective implements AfterViewInit { 
    constructor(public element: ElementRef) {} 
    @Input('focusOnError') focusOnError; 

    ngAfterViewInit() { 
     // put all your focusing logic here 
     // watches are also available here 
     element.focus() 
    } 
} 

Тогда на форме элементов, которые вы можете использовать его:

<input type="text" focus-on-error="form.controls[ controlIndex ].hasError"> 
+0

Спасибо за вашу помощь я попробую ваши подход сегодня. – Snake

Смежные вопросы