【问题标题】:Using websockets/Server sent events with Angular dart使用 websockets/Server 通过 Angular dart 发送事件
【发布时间】:2014-04-11 03:44:34
【问题描述】:

我试图将 angular dart 与 websockets/server 发送的事件一起使用,但找不到任何文档/示例(有一些用于 angularJS,但对于此类事情似乎非常不同)。我尝试过的一些事情也没有奏效。

有人知道怎么做吗?

这是我尝试过的一个版本和错误:

@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);
      });

}

我在 pub build 中遇到的错误是:

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

【问题讨论】:

  • 您能否提供更多信息,您尝试完成什么?一些代码可以显示您尝试过的内容以及未按您希望的结果会很棒。
  • 我在服务器上运行了一个动态系统(在 scala/play 中),生成某些概率分布。我想定期向前端发送信息,应该会更新。这通过服务器发送的带有 dom 操作的事件来工作(我在另一个应用程序中这样做了)。但是在角度控制器中,根据我尝试做事的方式,我会遇到各种错误。
  • 我发现在这样一个通用级别上讨论方法相当困难。您能否只删除几行代码,例如您的控制器。我无法想象你会遇到什么问题。也许它是关于一般的异步编程?请向您的问题添加其他信息,而不是作为 cmets(cmets 中的代码不可读)。然后添加一个简短的评论,以便我收到有关更新的通知。
  • 我已经输入了一些代码,以及 pub build 的错误消息。
  • 太棒了!我猜你收到了关于我的回答的通知?

标签: dart angular-dart


【解决方案1】:

您可以对 final 字段的初始化程序执行的操作有一些限制。

你能不能试着把这段代码放在构造函数中

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);
      });
}

【讨论】:

  • 我实际上先尝试了 var,然后将其更改为 final。在这两种情况下我都会遇到同样的错误。
  • 您是否尝试过将初始化代码放入构造函数(或某些方法)中。你的代码看起来没有错,但我自己还没有这样做过。我将其更改为 var 因为您无法从构造函数主体初始化最终字段。
  • 谢谢。我把它放在一个构造函数中,它就构建了。
  • 太棒了!当它解决您的问题时,您能否通过单击向上/向下投票按钮下方的复选标记来接受答案。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-10-13
  • 1970-01-01
  • 2014-11-30
  • 2015-12-08
  • 2020-10-17
  • 2020-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多