从dart中的on- *属性获取StreamSubscription

时间:2015-02-16 08:36:50

标签: events dart

在我的自定义元素中,我有一些元素,它们具有'on-input'属性。它们都调用相同的功能。因此,在输入元素的每个更改中,函数都会被调用。但我想从第一个事件中获取StreamSubscription,暂停它并在功能完成后再次启动它。

那么有没有办法从'on- *'属性获取StreamSubscription?

从Dart Code设置onInput事件不是一个选项。

1 个答案:

答案 0 :(得分:1)

如果你强制添加事件监听器,那就是你得到的。

$['my-input'].onXxx.listen...

$['my-input'].on['Xxx'].listen...

请阅读你的最后一句话。为什么不是一个选择?

您可以创建自己的StreamController,并在声明分配的事件处理程序中添加事件。

  StreamController<Event> _inputController = new StreamController<Event>();
  Stream<Event> get onInput => _inputController.stream;

  void inputHandler(Event e) {
    _inputController.add(e);
  }

如果需要,您可以将onInput设为广播信息流

Stream<Event> _inputStream = _exitController.stream.asBroadcastStream();

...

// subscribe to the event
onInput.listen...

但是通过这种方式,你可以直接使用元素的事件流,如上所示。