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

回文集目錄:JHipster一知半解

app根目錄

app目錄是一個(gè)相當(dāng)標(biāo)準(zhǔn)的angular工程根目錄,包含必須的ts文件

app.main.ts

使用platformBrowserDynamic啟動(dòng)朱模塊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: '-'}), //給存儲(chǔ)的cookie統(tǒng)一增加前綴,防止命名沖突
        JhipsterSampleApplicationNg2SharedModule, //共享模塊
        JhipsterSampleApplicationNg2HomeModule,  //首頁(yè)模塊
        JhipsterSampleApplicationNg2AdminModule, //管理員模塊
        JhipsterSampleApplicationNg2AccountModule, //賬號(hào)管理模塊
        JhipsterSampleApplicationNg2EntityModule, //實(shí)體模塊
        // jhipster-needle-angular-add-module JHipster will add new module here
    ],
    //主模塊自己的組件需要聲明(layout中的)
    declarations: [
        JhiMainComponent,
        NavbarComponent,
        ErrorComponent,
        PageRibbonComponent,
        ActiveMenuDirective,
        FooterComponent
    ],
    //主模塊自己的服務(wù)需要聲明(layout中的),根據(jù)注入器規(guī)則,這里聲明的service是整個(gè)工程都可以直接用的。
    providers: [
        ProfileService,
        //這里替換了angular的http,用了自己實(shí)現(xiàn)的customHttpProvider
        customHttpProvider(),
        PaginationConfig,
        UserRouteAccessService
    ],
    //聲明引導(dǎo)模塊(僅主模塊才有)
    bootstrap: [ JhiMainComponent ]
})
export class JhipsterSampleApplicationNg2AppModule {}

TODO:加上angular模塊定義地址。

app-routing.module.ts(4.10還定義在layout里面,這里移出來(lái)了)

import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
//具體的路由ROUTES還是定義在layout中的
import { errorRoute, navbarRoute } from './layouts';

const LAYOUT_ROUTES = [
    navbarRoute,
    ...errorRoute
];

@NgModule({
    imports: [
        //根據(jù)layout中路由定義,初始化路由
        //設(shè)置了使用hash,url中就會(huì)出現(xiàn)“#”,這樣兼容性更好些,用戶有多少人會(huì)去看url呢?
        RouterModule.forRoot(LAYOUT_ROUTES, { useHash: true })
    ],
    exports: [
        //重新導(dǎo)出路由模塊給其他模塊用(forChild)
        RouterModule
    ]
})
export class JhipsterSampleApplicationNg2AppRoutingModule {}

app.route.ts

在4.12.0版本中并沒(méi)有用到,和navbar.route.ts重復(fù)了,之后也要從layout目錄移出來(lái)?

app.constants.ts

這里定義了一些全局變量,程序中會(huì)用到,實(shí)際上在運(yùn)行webpack時(shí)候,會(huì)根據(jù)具體設(shè)定,替換這里的默認(rèn)值(也就是說(shuō)這里并不需要改)、
參見(jiàn)webpack.common.js的StringReplacePlugin

polyfills.ts

兼容性因子(據(jù)說(shuō)兼容IE9會(huì)有問(wèn)題),暫略
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容