美文网首页我爱编程
JHipster一知半解- 4.6.2 webapp-app根目

JHipster一知半解- 4.6.2 webapp-app根目

作者: 沉寂之舟 | 来源:发表于2018-06-13 20:59 被阅读62次

    回文集目录:JHipster一知半解

    app根目录

    app目录是一个相当标准的angular工程根目录,包含必须的ts文件

    app.main.ts

    使用platformBrowserDynamic启动朱模块JhipsterSampleApplicationNg2AppModule。
    

    app.module.ts

    import './vendor.ts';
    

    引入第三方css样式,vendor.ts引入vendor.css,vendor.css引入boot-strap.css和font-awesome.css

    import {
        JhiMainComponent,
        NavbarComponent,
        FooterComponent,
        ProfileService,
        PageRibbonComponent,
        ActiveMenuDirective,
        ErrorComponent
    } from './layouts';
    

    layout目录并非子模块,而是主模块直接使用的,因此需要引入其定义的component,service等。

    @NgModule({
        //引入其他子模块
        imports: [
            BrowserModule, //angular 浏览器模块,仅主模块需要import
            JhipsterSampleApplicationNg2AppRoutingModule, //引入路由模块
            Ng2Webstorage.forRoot({ prefix: 'jhi', separator: '-'}), //给存储的cookie统一增加前缀,防止命名冲突
            JhipsterSampleApplicationNg2SharedModule, //共享模块
            JhipsterSampleApplicationNg2HomeModule,  //首页模块
            JhipsterSampleApplicationNg2AdminModule, //管理员模块
            JhipsterSampleApplicationNg2AccountModule, //账号管理模块
            JhipsterSampleApplicationNg2EntityModule, //实体模块
            // jhipster-needle-angular-add-module JHipster will add new module here
        ],
        //主模块自己的组件需要声明(layout中的)
        declarations: [
            JhiMainComponent,
            NavbarComponent,
            ErrorComponent,
            PageRibbonComponent,
            ActiveMenuDirective,
            FooterComponent
        ],
        //主模块自己的服务需要声明(layout中的),根据注入器规则,这里声明的service是整个工程都可以直接用的。
        providers: [
            ProfileService,
            //这里替换了angular的http,用了自己实现的customHttpProvider
            customHttpProvider(),
            PaginationConfig,
            UserRouteAccessService
        ],
        //声明引导模块(仅主模块才有)
        bootstrap: [ JhiMainComponent ]
    })
    export class JhipsterSampleApplicationNg2AppModule {}
    

    TODO:加上angular模块定义地址。

    app-routing.module.ts(4.10还定义在layout里面,这里移出来了)

    import { NgModule } from '@angular/core';
    import { RouterModule } from '@angular/router';
    //具体的路由ROUTES还是定义在layout中的
    import { errorRoute, navbarRoute } from './layouts';
    
    const LAYOUT_ROUTES = [
        navbarRoute,
        ...errorRoute
    ];
    
    @NgModule({
        imports: [
            //根据layout中路由定义,初始化路由
            //设置了使用hash,url中就会出现“#”,这样兼容性更好些,用户有多少人会去看url呢?
            RouterModule.forRoot(LAYOUT_ROUTES, { useHash: true })
        ],
        exports: [
            //重新导出路由模块给其他模块用(forChild)
            RouterModule
        ]
    })
    export class JhipsterSampleApplicationNg2AppRoutingModule {}
    

    app.route.ts

    在4.12.0版本中并没有用到,和navbar.route.ts重复了,之后也要从layout目录移出来?
    

    app.constants.ts

    这里定义了一些全局变量,程序中会用到,实际上在运行webpack时候,会根据具体设定,替换这里的默认值(也就是说这里并不需要改)、
    参见webpack.common.js的StringReplacePlugin
    

    polyfills.ts

    兼容性因子(据说兼容IE9会有问题),暂略
    

    相关文章

      网友评论

        本文标题:JHipster一知半解- 4.6.2 webapp-app根目

        本文链接:https://www.haomeiwen.com/subject/qxuseftx.html