使用 Angular 2 開發(fā)單頁應(yīng)用程序之二

在上一篇文章使用 Angular 2 開發(fā)單頁應(yīng)用程序之一 中劝评,我們已經(jīng)完成了Angular 2開發(fā)環(huán)境的安裝,并建立了一個最簡單可運行的 Angular 2 單頁應(yīng)用程序SPA dw-ng2-app。
dw-ng2-app 包含有一個模塊秸架、一個組件涩哟、一個類赡麦、一個模板、元數(shù)據(jù)和數(shù)據(jù)綁定娩怎, 但它仍缺少 4 個其他的重要部分:

  • 多個組件
  • 路由
  • 服務(wù)
  • 微服務(wù)的使用
    接下來搔课,您將創(chuàng)建這些自定義組件。

創(chuàng)建自定義組件和路由

創(chuàng)建自定義組件

按 Ctrl-C 停止 Angular 進程截亦。在命令提示符下爬泥,運行以下命令:

  • ng g c Menu -is --spec false --flat:在 AppModule 根模塊內(nèi)創(chuàng)建 Menu 組件。
  • ng g c Weather -is --spec false:在 AppModule weather 子目錄創(chuàng)建 Weather 組件魁巩。
  • ng g c Currency -is --spec false:在 AppModule currency 子目錄中創(chuàng)建 Currency 組件急灭。
  • ng g c Movie -is --spec false:在 AppModule movie 子目錄中創(chuàng)建 Movie 組件。


    執(zhí)行命令

創(chuàng)建路由

要讓 Angular 能在組件之間導(dǎo)航谷遂,需要創(chuàng)建路由葬馋。使用以下內(nèi)容覆蓋 menu.component.html 文件。

<div class="row">
  <div class="col-xs-12">
    <ul class="nav nav-pills">
      <li routerLinkActive="active"> <a [routerLink]="['/weather']" >Weather</a></li>
      <li routerLinkActive="active"> <a [routerLink]="['/movie']" >Movie Details</a></li>
      <li routerLinkActive="active"> <a [routerLink]="['/currency']" >Currency Rates</a></li>
    </ul>
  </div>
</div>

上面的菜單代碼提供了頁面菜單肾扰,當(dāng)在菜單上點擊Movie Details 時畴嘶,Angular 會跳轉(zhuǎn)到URL路徑 http://localhost:4200/movie
下面將URL路徑映射到我們在上一步創(chuàng)建的組件上。在根模塊的文件夾中集晚,創(chuàng)建一個名為 app.routing.ts 的配置文件窗悯,內(nèi)容如下:

import { Routes, RouterModule } from '@angular/router';
import { CurrencyComponent } from "./currency/currency.component";
import { WeatherComponent } from "./weather/weather.component";
import { MovieComponent } from "./movie/movie.component";
const MAINMENU_ROUTES: Routes = [
    //full : makes sure the path is absolute path
    { path: '', redirectTo: '/weather', pathMatch: 'full' },
    { path: 'weather', component: WeatherComponent },
    { path: 'movie', component: MovieComponent },
    { path: 'currency', component: CurrencyComponent } 
];
export const CONST_ROUTING = RouterModule.forRoot(MAINMENU_ROUTES);

如果 URL相對路徑是 movie,則 Angular 會調(diào)用 MovieComponent 組件偷拔。
現(xiàn)在蒋院,將頁面鏈接到父組件,將 app.component.html 修改為以下內(nèi)容:

<div class="container">
  <app-menu></app-menu>
  <hr>
  <router-outlet></router-outlet>
</div>
  • app-menu 會引入菜單
  • route-outlet 是URL指定的組件莲绰,可能是天氣欺旧、電影或貨幣。

你還必須在模塊中引入這個路由蛤签,在 app.module.ts 文件中添加兩項辞友,如下,

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';

import { AppComponent } from './app.component';
import { MenuComponent } from './menu.component';
import { WeatherComponent } from './weather/weather.component';
import { CurrencyComponent } from './currency/currency.component';
import { MovieComponent } from './movie/movie.component';
import { CONST_ROUTING } from './app.routing'; // 新添加
 
@NgModule({
  declarations: [
    AppComponent,
    MenuComponent,
    WeatherComponent,
    CurrencyComponent,
    MovieComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpModule,
    CONST_ROUTING // 新添加
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

現(xiàn)在震肮,如果您運行應(yīng)用程序并單擊 Weather 鏈接称龙,應(yīng)用程序?qū)@示 weather works!

天氣組件

如果單擊 Movie Details 鏈接,應(yīng)用程序會顯示 movie works!
電影組件

如果單擊 Currency Rates 鏈接戳晌,應(yīng)用程序?qū)@示 currency works!
貨幣組件

至此鲫尊,我們成功修改了 Angular 應(yīng)用程序 dw-ng2-app,創(chuàng)建了多個自定義組件和路由沦偎。后續(xù)的文章中將繼續(xù)介紹如何創(chuàng)建服務(wù)马昨,并將這些服務(wù)集成到前端頁面視圖中竞帽。

文章導(dǎo)航

  1. 使用 Angular 2 開發(fā)單頁應(yīng)用程序之一
  2. 使用 Angular 2 開發(fā)單頁應(yīng)用程序之二
  3. 使用 Angular 2 開發(fā)單頁應(yīng)用程序之三

進一步的學(xué)習(xí)

免費獲取項目源代碼,咨詢老師進行答疑指導(dǎo)鸿捧,請加QQ:1628145742 屹篓,或報名我們的實戰(zhàn)課程:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市匙奴,隨后出現(xiàn)的幾起案子堆巧,更是在濱河造成了極大的恐慌,老刑警劉巖泼菌,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谍肤,死亡現(xiàn)場離奇詭異,居然都是意外死亡哗伯,警方通過查閱死者的電腦和手機荒揣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來焊刹,“玉大人系任,你說我怎么就攤上這事∨翱椋” “怎么了俩滥?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長贺奠。 經(jīng)常有香客問我霜旧,道長,這世上最難降的妖魔是什么儡率? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任挂据,我火速辦了婚禮,結(jié)果婚禮上儿普,老公的妹妹穿的比我還像新娘崎逃。我一直安慰自己,他們只是感情好箕肃,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著今魔,像睡著了一般勺像。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上错森,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天吟宦,我揣著相機與錄音,去河邊找鬼涩维。 笑死殃姓,一個胖子當(dāng)著我的面吹牛袁波,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜗侈,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼篷牌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了踏幻?” 一聲冷哼從身側(cè)響起枷颊,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎该面,沒想到半個月后夭苗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡隔缀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年题造,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猾瘸。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡界赔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出须妻,到底是詐尸還是另有隱情仔蝌,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布荒吏,位于F島的核電站敛惊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绰更。R本人自食惡果不足惜瞧挤,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望儡湾。 院中可真熱鬧特恬,春花似錦、人聲如沸徐钠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽尝丐。三九已至显拜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爹袁,已是汗流浹背远荠。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留失息,地道東北人譬淳。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓档址,卻偏偏與公主長得像,于是被迫代替她去往敵國和親邻梆。 傳聞我的和親對象是個殘疾皇子守伸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容