在Angular Dart中声明嵌套组件

时间:2014-03-14 08:44:18

标签: dart angular-dart

播放并使用Angular Dart进行大量实验之后,我现在正在写第一个真实的(如“真实用户将在我的公司中使用”)应用程序。我偶然发现了一个问题,我无法在网上找到答案:如何正确嵌套组件?

我有一些简单的小部件,实现为组件,我有一些更复杂的复合小部件,包括简单的小部件。

现在,我必须在主dart文件中使用module..type()声明所有组件(简单和复合)。但在组件范例中,内部简单组件应封装在复合组件内部,即不从外部声明。

有一种方法可以在组件中进行封装,允许Component声明和使用内部组件,而不必在主应用程序中声明每个内部组件。

有办法吗?我的google-fu通常不是很糟糕,但我在这个主题上一无所获......

提前致谢!

1 个答案:

答案 0 :(得分:3)

创建更多模块,并使用MyAppModule

将其添加到install

见例如 - https://github.com/akserg/angular.dart.ui/blob/master/lib/accordion/accordion.dart
- https://github.com/akserg/angular.dart.ui/blob/master/lib/angular_ui.dart

<强> accordion.dart

class AccordionModule extends Module {
  AccordionModule() {
    // old syntax
    type(AccordionComponent);
    type(AccordionHeadingComponent);
    type(AccordionGroupComponent);
    value(AccordionConfig, new AccordionConfig());
    // you could also use install() here not only in the main module

    // new Syntax
    bind(AccordionComponent);
    bind(AccordionHeadingComponent);
    bind(AccordionGroupComponent);
    bind(AccordionConfig, toValue: new AccordionConfig());
  }
}

<强> angular_ui.dart

class AngularUIModule extends Module {
  AngularUIModule() {
    install(new AlertModule());
    install(new AccordionModule()); // the above module
    install(new ButtonModule());
    install(new CarouselModule());
    install(new CollapseModule());
    install(new DropdownToggleModule());
    install(new ProgressbarModule());
    install(new RatingModule());
    install(new TabsModule());
    install(new TimeoutModule());
    install(new TransitionModule());
    install(new ModalModule());
  }
}