2017-03-17 5 views
4

지시문 또는 HTML 자동 초점을 작성하여 angularjs 입력 필드에 자동 포커스를 설정하는 방법에 대한 여러 게시물을 볼 수 있습니다. 각도로 초점을 설정하는 빠르고 쉬운 방법이 있습니까? 각 2, 각 4 등)는 HTML 구성 요소 코드에서 해당 참조를 얻을 수 #nameit를 추가에서각도 또는 각도에서 자동 초점을 설정하는 방법

+1

같은

내 코드의 모습이'elem.focus를 수행합니다()' – yurzui

+0

elem.focus을 배치 할 위치를(). –

+0

는 html 5 속성을 사용했지만 나에게 전혀 효과가 없었습니다. –

답변

6

.

<input type="text" name="me" #nameit> 

다음으로 자동 접착 장치를 부착하십시오.

@ViewChild('nameit') private elementRef: ElementRef; 

    public ngAfterViewInit(): void { 
    this.elementRef.nativeElement.focus(); 
    } 
+1

이게 나를 위해 작동합니다 –

+1

키보드가 자동으로 사용자의 화면 절반을 덮고 커버하기 때문에 iOS에서 끔찍한 사용자 경험을 제공 할 수 있습니다. 입력이 필수 인 구성 요소에서만 이와 같이 사용하십시오. – andreas

+0

업데이트 : Material Design 구성 요소가있는 Angular 4에서 '@ViewChild ('myInput ', {read : MatInput}) stateTypeahead : MatInput;'이 작업이 시작되었습니다 :'this.myInput.focus();'(Did 'nativeElement' 필요하지 않습니다 – Red3

-2
<input type="text" #textInput placeholder="something" (focus)="someFunction(textInput.value)"/> 

또는

<input type="text" #textInput placeholder="something" (keyup.enter)="someMethod(textInput.value)"/> 
+0

ng-focus 또는 포커스를 실행할 함수를 대신 할 필요는 없습니다. 누군가가 해당 페이지에있을 때 자동 포커스를 원합니다. 해당 구성 요소가 있으면 해당 입력 필드를 포커스합니다. –

2

일부 경우에는 Aniruddha Das 응답이 잘 작동합니다. 이 필요한 유효성 검사 템플릿 기반 양식에 적용되는 경우, 다음과 같은 오류가 나타날 수 있습니다 이것에

ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after >it was checked. Previous value: 'false'. Current value: 'true'.

하나 개의 솔루션이 ngInit (내 초점() 호출을 포장한다

) 대신 ngAfterViewInit의() . 그래서, Aniduddha의 대답에 연장 : 당신의 HTML에서

구성 요소에 #namedReference을 추가

<input type="text" 
    placeholder="Your full name" 
    name="name" 
    ngModel 
    #fullName="ngModel" 
    required 
    #nameit> 

을 그것으로 자동 초점을 적용 onNgInit()를 사용하여 다음 :

@ViewChild('nameit') private elementRef: ElementRef; 

ngOnInit() { 
    this.elementRef.nativeElement.focus(); 
} 
+0

yap. 좋은 소리입니다! –

0

을 할 수 가장 많이 투표 한 답변의 예를 사용하십시오. 그러나 때때로 "비동기"호출을 위해 setTimeout에 집중해야합니다. 내 경우에는 각도 소재의 매트 자동 완성 구성 요소의 선택된 필터에 setTimeout을 넣어야합니다. 이

setTimeout(() => this.qtdeRef.nativeElement.focus());