使用 material-dropdown-select 时 DomPopupSourceFactory 提供程序错误

DomPopupSourceFactory provider error when using material-dropdown-select

我正在尝试使用 material 下拉菜单 select 但我收到此错误:

EXCEPTION: No provider found for DomPopupSourceFactory.

material指令添加到指令列表中,html调用很简单:

<material-dropdown-select></material-dropdown-select>

我尝试了 angular_components_example,效果很好。问题出在我的项目上。我已经尝试清理 .packages 并执行 pub get。没有任何效果。我尝试了其他一些 material 组件,它们都起作用了。

如果您将 materialProviders 添加到 AppComponent,它应该可以工作:

@Component(
  selector: 'my-app',
  directives: const <dynamic>[
    CORE_DIRECTIVES,
    materialDirectives,
  ],
  providers: const <dynamic>[
    materialProviders, // <<<<<<<<<<<<<<<<
  ],
)
class AppComponent {...}

它适用于 angular_components 示例,因为应用程序级组件包含必要的 popupBindings 提供程序。

如果您没有在您的应用中包含 materialProviders,您可以在您的组件中使用更具体的提供程序。

这是使用 material-dropdown-select 所需的最低样板:

import 'package:angular/angular.dart';
import 'package:angular_components/laminate/popup/module.dart';
import 'package:angular_components/material_select/material_dropdown_select.dart';

@Component(
  selector: 'my-dropdown-select',
  directives: const [
    MaterialDropdownSelectComponent,
  ],
  providers: const [
    popupBindings,
  ],
)
class MyDropdownSelectComponent {}