지시문 또는 HTML 자동 초점을 작성하여 angularjs 입력 필드에 자동 포커스를 설정하는 방법에 대한 여러 게시물을 볼 수 있습니다. 각도로 초점을 설정하는 빠르고 쉬운 방법이 있습니까? 각 2, 각 4 등)는 HTML 구성 요소 코드에서 해당 참조를 얻을 수 #nameit
를 추가에서각도 또는 각도에서 자동 초점을 설정하는 방법
답변
.
<input type="text" name="me" #nameit>
다음으로 자동 접착 장치를 부착하십시오.
@ViewChild('nameit') private elementRef: ElementRef;
public ngAfterViewInit(): void {
this.elementRef.nativeElement.focus();
}
이게 나를 위해 작동합니다 –
키보드가 자동으로 사용자의 화면 절반을 덮고 커버하기 때문에 iOS에서 끔찍한 사용자 경험을 제공 할 수 있습니다. 입력이 필수 인 구성 요소에서만 이와 같이 사용하십시오. – andreas
업데이트 : Material Design 구성 요소가있는 Angular 4에서 '@ViewChild ('myInput ', {read : MatInput}) stateTypeahead : MatInput;'이 작업이 시작되었습니다 :'this.myInput.focus();'(Did 'nativeElement' 필요하지 않습니다 – Red3
<input type="text" #textInput placeholder="something" (focus)="someFunction(textInput.value)"/>
또는
<input type="text" #textInput placeholder="something" (keyup.enter)="someMethod(textInput.value)"/>
ng-focus 또는 포커스를 실행할 함수를 대신 할 필요는 없습니다. 누군가가 해당 페이지에있을 때 자동 포커스를 원합니다. 해당 구성 요소가 있으면 해당 입력 필드를 포커스합니다. –
일부 경우에는 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();
}
yap. 좋은 소리입니다! –
을 할 수 가장 많이 투표 한 답변의 예를 사용하십시오. 그러나 때때로 "비동기"호출을 위해 setTimeout에 집중해야합니다. 내 경우에는 각도 소재의 매트 자동 완성 구성 요소의 선택된 필터에 setTimeout을 넣어야합니다. 이
setTimeout(() => this.qtdeRef.nativeElement.focus());
같은
내 코드의 모습이'elem.focus를 수행합니다()' – yurzui
elem.focus을 배치 할 위치를(). –
는 html 5 속성을 사용했지만 나에게 전혀 효과가 없었습니다. –