当前位置: 首页 > 知识库问答 >
问题:

如何在类中触发一种onChange事件

於彬
2023-03-14

我尝试用dart构建一个应用程序。我在另外两个中注入了一个服务类来共享一些数据。现在的问题是,我不知道如何通过另一个类属性改变(async)来触发一个类中的事件(onChange)。

共有1个答案

丌官高远
2023-03-14

您可以创建一个其他人可以监听或使用observable的流getter。

流:

import 'dart:async';

// custom event class
class MyEvent {
  String eventData;

  MyEvent(this.eventData);
}

// class that fires when something changes
class SomeClass {
  var changeController = new StreamController<MyEvent>();
  Stream<MyEvent> get onChange => changeController.stream;

  void doSomething() {
    // do the change
    changeController.add(new MyEvent('something changed'));
  }
}

// listen to changes
...
var c = new SomeClass();
c.onChange.listen((e) => print(e.eventData));
...

可观察:请参见<br>从聚合物dart观察包<br>如何使用dart ChangeNotifier类
-http://www.dartdocs.org/documentation/observe/0.12.2/index.html

 类似资料:
  • 本文向大家介绍如何在javascript中手动触发onchange事件?,包括了如何在javascript中手动触发onchange事件?的使用技巧和注意事项,需要的朋友参考一下 您可以使用dispatchEvent方法在单个元素上调度事件。假设您有一个带有onChange事件的元素测试- 事件处理程序- 手动触发事件- 这将记录以下内容-

  • 问题内容: 我正在通过日历窗口小部件设置日期时间文本字段值。显然,日历小部件会执行以下操作: 我想要的是:在更改日期时间文本字段中的值时,我需要重置页面中的其他一些字段。我已经将一个onchange事件侦听器添加到了不会被触发的datetimetext字段中,因为我猜只有在元素获得焦点并且其值更改为失去焦点时才会被触发。 因此,我正在寻找一种手动触发此事件的方法(我认为应该注意检查文本字段中的值差

  • 问题内容: 我已使用将事件附加到文本框。它工作正常。当我想通过另一个函数以编程方式触发事件时,出现了我的问题。 我该怎么做? 问题答案: 您可以在IE 8或更低版本上使用fireEvent,在大多数。要创建您要触发的事件,可以使用或取决于浏览器。 这是一段不言自明的代码(来自原型),它在上触发事件:

  • 问题内容: 这是我第一次需要使用SqlDependency,所以我希望它是我犯的一个愚蠢的错误。 我遇到的问题是,当SQL表更改时,不会触发OnChanged事件。没有错误或其他任何东西不会触发。 这是代码 在我的主窗口中 因此,预期的行为是,如果我运行以下sqlQuery,将显示一个messageBox,显示“收到消息” 谁能给我提示要检查/更改的内容吗? 我知道在依赖项中只能使用Sql功能的一

  • 问题内容: 当我玩时,只有在将滑块放到新位置时Firefox才会触发onchange事件,在该位置上,Chrome和其他人在拖动滑块时触发onchange事件。 如何在Firefox中拖动来实现? 问题答案: 显然Chrome和Safari是错误的:仅应在用户释放鼠标时才触发。要获取连续更新,您应该使用该事件,该事件将通过鼠标和键盘捕获Firefox,Safari和Chrome中的实时更新。 但是

  • 问题内容: 我们使用Backbone + ReactJS捆绑包来构建客户端应用程序。严重依赖臭名昭著的是,我们通过自己的支持ReactJS接口进行双向绑定的包装器将值直接传播到模型。 现在我们面对这个问题: 我们有一个插件,可以通过编程方式格式化输入值,因此不会触发React事件。当模型从用户输入中接收 未格式化的 值而从插件中 丢失格式化的 值时,所有这些都会导致情况。 似乎React依赖于浏览