Dart 如何在页面加载时设置元素的焦点?

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

我是AngularDart的新手,我想将第一个输入集中在页面上(使用decorator的属性),但我不知道如何做到这一点。这是我的装饰师:

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后缺少一个括号。