Dart 如何在页面加载时设置元素的焦点?
我是AngularDart的新手,我想将第一个输入集中在页面上(使用decorator的属性),但我不知道如何做到这一点。这是我的装饰师:Dart 如何在页面加载时设置元素的焦点?,dart,angular-dart,Dart,Angular Dart,我是AngularDart的新手,我想将第一个输入集中在页面上(使用decorator的属性),但我不知道如何做到这一点。这是我的装饰师: import 'dart:html' as html; import 'dart:async'; import 'package:angular/angular.dart'; @Decorator(selector: '[autofocus]') class InputFocus implements AttachAware { final htm
import 'dart:html' as html;
import 'dart:async';
import 'package:angular/angular.dart';
@Decorator(selector: '[autofocus]')
class InputFocus implements AttachAware {
final html.InputElement element;
InputFocus(html.Element this.element) {
element.onFocus.listen((_) => print('element focused'));
}
@Override
attach() {
element.focus();
}
}
当我点击元素时,消息被打印出来,因此元素就是我要查找的元素。不知何故,元素没有集中在attach上,因为在我重新加载页面时消息没有打印出来。我怎样才能实现我的目标?在呈现DOM时,可能还有另一种方法可以到达元素
提前谢谢 一些延迟应该会有所帮助
new Future.delayed(const Duration(milliseconds: 50), () => element.focus());
这实际上适用于使用InputElement.select()选择输入。不管怎么说,把它放在事件队列的末尾似乎是正确的,尽管这种方法看起来很奇怪。持续时间需要仅为0或负数,因为我们只需要将其放在事件队列的末尾+这对我帮助很大。只需指出一个小错误,50后缺少一个括号。