我的页面上的第一个控件需要在页面最初加载时具有输入焦点,不幸的是,在我的情况下,该控件是ng-select。
所以,在我的ang2模板中的某个地方:
$("#mySelect > div").focus();
$("#mySelect > div").select();
在我的ngAfterViewInit中,我有:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter the sequence with spaces e.g. 1 3 5 3 1 1 3 5 ");
String input = sc.nextLine();
String[] numbers = input.split("\\s+");
List<String> result = new ArrayList<>();
for (int x = 0; x < numbers.length; x++) {
String item = numbers[x];
if (result.contains(item)) continue;
result.add(item);
}
System.out.println(String.join(" ", result));
}
(也尝试删除div)
唉,这不起作用。注意: 这不是&#34;在AngularJS&#34;中将默认焦点放在元素上的最简单方法是什么?这个问题是指一个输入控件,所以基本的jquery焦点/选择是有效的。这特别指的是ng-select(渲染为一堆儿童div)。
答案 0 :(得分:1)
你可以在没有jQuery的情况下做到这一点:
@ViewChild('yourFieldReference') fieldRefName: ElementRef;
.
.
.
.
ngOnInit() {
this.fieldRefName.nativeElement.focus();
}
&#13;
<input #yourFieldReference id="fieldID">
&#13;
我已经使用input
完成了它,但你可以使用任何HTML元素标记来完成它
答案 1 :(得分:1)
这段代码对我有用,试试这个
<ng-select #myInput id="mySelect" class="form-control" [options]="_myOptions" [(ngModel)]="model.SelectId" *ngIf=initDone' name=" mySelect" style="z-index: 10">
</ng-select>
并在您的component.ts中,使用viewchild和renderer来获取元素。 AfterViewInit
有助于在呈现html之后将其集中。 (在OnInit()上遇到问题,这就是为什么)
import {ViewChild, Component, AfterViewInit, ElementRef, Renderer} from 'angular2/core';
export class App {
@ViewChild('myInput') selectFocus:ElementRef;
constructor(private _renderer : Renderer) {
}
public ngAfterViewInit() {
this._renderer.invokeElementMethod(this.selectFocus.nativeElement, 'focus', []);
}
}