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

时间:2017-06-13 15:00:07

标签: dart angular-dart material-components

我正在尝试使用材料下拉选择,但我收到此错误:

EXCEPTION: No provider found for DomPopupSourceFactory.

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

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

我尝试了angular_components_example并且工作正常。问题出在我的项目上。我已经尝试清理.packages并执行pub get。没有任何效果。我尝试了一些其他材料组件,但是他们工作了。

2 个答案:

答案 0 :(得分:3)

如果您将materialProviders添加到AppComponent,则应该有效:

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

答案 1 :(得分:1)

它适用于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 {}