在我的自定义元素中,我有一些元素,它们具有'on-input'属性。它们都调用相同的功能。因此,在输入元素的每个更改中,函数都会被调用。但我想从第一个事件中获取StreamSubscription,暂停它并在功能完成后再次启动它。
那么有没有办法从'on- *'属性获取StreamSubscription?
从Dart Code设置onInput事件不是一个选项。
答案 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...
但是通过这种方式,你可以直接使用元素的事件流,如上所示。