メッセージを数秒間表示してから消える単純な Web コンポーネントを作成しようとしています。最初の 2 つの文字列を表示しましたが、インフォーマル メソッドを呼び出しても何も起こりません。
<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 が更新されますが、このリストを使用すると何も表示されません。
ブラウザにエラーは表示されず、外部から、外部の Web コンポーネントからインフォーマルを呼び出しています。
ヒントはありますか?