Pergunta

Eu estava tentando usar o angular dart com websockets/eventos enviados pelo servidor e não consegui encontrar nenhuma documentação/exemplos (existem alguns para angularJS, mas isso parece muito diferente para essas coisas).Algumas coisas que tentei também não funcionaram.

Alguém sabe como fazer isso?

Aqui está uma versão do que tentei e o erro:

@NgController (
    selector: "ACdistribution",
    publishAs : "dstbn")
class ACDstbnController{
  List <WtdPres> distbn;

  void updateDstbn(List<WtdPres> newdstbn){
    distbn = newdstbn;
  }


  final dstbnsrc = new EventSource("../dstbns")
        ..onMessage.listen((event){
    List wps = JSON.decode(event.data);
    List <WtdPres> newdistbn = wps.map((wp) => new WtdPres.fromJson(wp));
    updateDstbn(newdistbn);
      });

}

O erro que recebi na compilação do pub foi:

web/provingground.dart:55:5:
'updateDstbn' is only available in instance methods.
    updateDstbn(newdistbn);
    ^^^^^^^^^^^
Foi útil?

Solução

Existem limitações sobre o que você pode fazer nos inicializadores dos campos finais.

Você pode tentar colocar esse código dentro do construtor

var dstbnsrc;

ACDstbnController() {
  dstbnsrc = new EventSource("../dstbns")
        ..onMessage.listen((event){
    List wps = JSON.decode(event.data);
    List <WtdPres> newdistbn = wps.map((wp) => new WtdPres.fromJson(wp));
    updateDstbn(newdistbn);
      });
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top