Angular2组件如何导入指令组件?

cob*_*nks 4 angular2-components angular

我刚升级到angular2最终版本,rc4有很多重大变化.其中一个是组件上不再有Directives集合......我想做这样的事情:

@Component({
    selector: 'resource-tab',
    templateUrl: './app/applicationMgmt/resource/resource-tab.html',
    directives: [
        NgSwitch,
        NgSwitchCase,
        NgSwitchDefault,
        OtherResourceEditorComponent,
        MvcResourceEditorComponent,
        WcfResourceEditorComponent,
        WebResourceEditorComponent,
        WebApiResourceEditorComponent,
        ConfigResourceEditorComponent
    ]    
})
Run Code Online (Sandbox Code Playgroud)

引用在视图模板上用作指令的其他组件...现在如何做到这一点?

Sup*_*miu 6

最好的方法是创建一个ResourceEditorModule这样的:

@NgModule({
    declarations:[
            OtherResourceEditorComponent,
            MvcResourceEditorComponent,
            WcfResourceEditorComponent,
            WebResourceEditorComponent,
            WebApiResourceEditorComponent,
            ConfigResourceEditorComponent
    ],
    exports:[
            OtherResourceEditorComponent,
            MvcResourceEditorComponent,
            WcfResourceEditorComponent,
            WebResourceEditorComponent,
            WebApiResourceEditorComponent,
            ConfigResourceEditorComponent
    ]
})
export class ResourceEditorModule{}
Run Code Online (Sandbox Code Playgroud)

ResourceEditorModule在您的AppModule:中添加为导入:

@NgModule({
    imports:[
        ...
        ...
        ResourceEditorModule
    ],
    ...
    ...
    ...
})
export class AppModule{}
Run Code Online (Sandbox Code Playgroud)

模块背后的想法是将组件,指令,管道和服务分成属于同一"包"的组,就像使用http所需的HttpModule一切,使用表单所需的一切FormsModule


gal*_*van 5

您应该在NgModule的声明属性下指定组件,指令和管道。因此,基本上,将我的angular 2项目升级到2.0.0的最简单方法。版本是为应用程序定义一个模块(app.module.ts),然后将其分解为较小的模块。可以在这里找到很好的参考