我正在尝试创建一个简单的 Web 组件,其目的是显示消息几秒钟然后消失。我已经显示了前两个字符串,但是当我调用通知方法时没有任何反应:
<element name="x-informador" constructor="InformadorComponente" extens="div">
<template>
<ul>
<template iterate="mensaje in mensajes">
<li>{{mensaje}}</li>
</template>
</ul>
</template>
<script type="application/dart">
import 'dart:async';
import 'package:web_ui/web_ui.dart';
import 'package:web_ui/watcher.dart' as watcher;
class InformadorComponente extends WebComponent {
@observable
List mensajes = ['uno', 'dos'];
const int DURACION_MENSAJE = 7;
void informar(String informe) {
mensajes.add(informe);
watcher.dispatch();
print('antes del Timer: ');
print(mensajes);
new Timer(new Duration(seconds: DURACION_MENSAJE), () {
mensajes.removeAt(0);
watcher.dispatch();
print('paso del mensajes, first');
print(mensajes);
});
}
}
</script>
</element>
我可以在浏览器上正确看到所有这些打印,但列表保持不变,没有任何反应。当我更改该列表的字符串并在调用通知方法时分配值时,UI 会刷新,但是当我使用此列表时,什么也没有。
浏览器没有显示任何错误,我从外部调用informar,从层次结构上的一个Web组件。
有什么提示吗?