如何在Dart中创建单例组件,并在需要时将处理程序传递给所有其他组件?

如何在Dart中创建单例组件,并在需要时将处理程序传递给所有其他组件?,dart,angular-dart,dart-html,Dart,Angular Dart,Dart Html,我正在尝试为应用程序创建一个中央通知服务,通过同一管道报告简单错误。这可能是错误的方法,但是我需要一个材料弹出窗口,粘贴到HTML主体上,根据不同组件的需要按需显示 import 'package:angular/angular.dart'; import 'package:angular_components/angular_components.dart'; import 'package:angular_components/laminate/overlay/zindexer.dart';

我正在尝试为应用程序创建一个中央通知服务,通过同一管道报告简单错误。这可能是错误的方法,但是我需要一个材料弹出窗口,粘贴到HTML主体上,根据不同组件的需要按需显示

import 'package:angular/angular.dart';
import 'package:angular_components/angular_components.dart';
import 'package:angular_components/laminate/overlay/zindexer.dart';


@Component(
    selector: 'hv-alerts',
    templateUrl: 'alert_service.html',
    directives: [
      MaterialPopupComponent,
      PopupSourceDirective
    ],
    providers: [
      ClassProvider(ZIndexer),
      materialProviders,
      popupBindings
    ]
)

class AlertService {

  RelativePosition get popupPosition => RelativePosition.AdjacentTop;

  bool popupVisible = false;

  void setVisible(bool flag) {
    popupVisible = flag;
  }


  PopupSizeProvider popupSize = FixedPopupSizeProvider(
      minWidth: 400,
      minHeight: 75,
      maxWidth: 600,
      maxHeight: 75
  );


  static final AlertService _instance = AlertService();
}

是否有办法通过单例或工厂或其他方式将处理程序传递到此材料弹出窗口,并允许其他服务调用AlertService.show?

组件的生命周期取决于模板本身中的元素。这样,如果有两个元素具有相同的选择器,则会有两个组件。你不能靠单身汉自己


也就是说,我将如何做到这一点是抽象它的服务部分,并将其作为一个单独的类注入弹出组件和任何用法。弹出窗口将监听流,知道何时显示弹出窗口,客户端将在StreamController上发送事件,告知弹出窗口何时显示。如果您想更安全一点,可以提供两个不同的接口—流和由同一实体支持的流控制器。这将使您能够更快地看到谁在使用警报,谁在生成警报

这就是我要做的:

创建一个警报服务,而不是一个组件,一个常规类 将此警报服务注入AppComponent 使用此服务传递控制弹出窗口的视图,并相应地对其进行操作
这很容易做到。

嗨,你能给我一个建议吗?我想学习一个新的前端框架,但我对AngularDart和AngularTypeScript感到困惑。事实上,我喜欢使用dart语言,这就是为什么我倾向于使用AngularDart,但我发现它在世界各地使用得不多,也没有足够的教程。你有什么建议,能给我一个建议吗?