
- Angular 4 教程
- Angular 4 - 首頁
- Angular 4 – 概述
- Angular 4 – 環境設定
- Angular 4 – 專案設定
- Angular 4 – 元件
- Angular 4 – 模組
- Angular 4 – 資料繫結
- Angular 4 – 事件繫結
- Angular 4 – 模板
- Angular 4 – 指令
- Angular 4 – 管道
- Angular 4 – 路由
- Angular 4 – 服務
- Angular 4 – Http 服務
- Angular 4 – 表單
- Angular 4 – 動畫
- Angular 4 – 材料
- Angular 4 – CLI
- Angular 4 – 示例
- Angular 4 有用資源
- Angular 4 - 快速指南
- Angular 4 - 有用資源
- Angular 4 - 討論
Angular 4 - 專案設定
AngularJS 基於模型檢視控制器,而 Angular 2 基於元件結構。Angular 4 使用與 Angular2 相同的結構,但與 Angular2 相比速度更快。
Angular4 使用 TypeScript 2.2 版本,而 Angular 2 使用 TypeScript 1.8 版本。這在效能方面帶來了很大的差異。
為了安裝 Angular 4,Angular 團隊推出了 Angular CLI,簡化了安裝過程。您需要執行幾個命令來安裝 Angular 4。
訪問此網站 https://cli.angular.io 以安裝 Angular CLI。

要開始安裝,我們首先需要確保已安裝最新版本的 nodejs 和 npm。npm 包與 nodejs 一起安裝。
訪問 nodejs 網站 https://nodejs.org/en/。

建議使用者使用最新版本的 Nodejs v6.11.0。已經安裝了 nodejs 4 及更高版本的使用者可以跳過上述過程。安裝 nodejs 後,您可以使用命令 node –v 在命令列中檢查 node 的版本,如下所示:

命令提示符顯示 v6.11.0。安裝 nodejs 後,npm 也會隨之安裝。
要檢查 npm 的版本,請在終端中鍵入命令 npm –v。它將顯示 npm 的版本,如下所示。

npm 的版本為 3.10.10。現在我們已經安裝了 nodejs 和 npm,讓我們執行 angular cli 命令來安裝 Angular 4。您將在網頁上看到以下命令:
npm install -g @angular/cli //command to install angular 4 ng new Angular 4-app // name of the project cd my-dream-app ng serve
讓我們從命令列中的第一個命令開始,看看它是如何工作的。
首先,我們將建立一個空目錄,在其中執行 Angular CLI 命令。

輸入上述命令以安裝 Angular 4。安裝過程將開始,並需要幾分鐘才能完成。

完成上述安裝命令後,將出現以下命令提示符:

我們建立了一個空資料夾 ProjectA4 並安裝了 Angular CLI 命令。我們還使用了 -g 將 Angular CLI 全域性安裝。現在,您可以在任何目錄或資料夾中建立您的 Angular 4 專案,並且不必逐個專案安裝 Angular CLI,因為它已全域性安裝在您的系統上,並且您可以從任何目錄使用它。
現在讓我們檢查 Angular CLI 是否已安裝。要檢查安裝情況,請在終端中執行以下命令:
ng -v

我們獲得了 @angular/cli 版本,目前為 1.2.0。正在執行的 node 版本為 6.11.0,以及作業系統詳細資訊。上述詳細資訊告訴我們已成功安裝 angular cli,現在我們可以開始我們的專案了。
我們現在已經安裝了 Angular 4。現在讓我們在 Angular 4 中建立我們的第一個專案。要在 Angular 4 中建立專案,我們將使用以下命令:
ng new projectname
我們將專案命名為 ng new Angular 4-app。
現在讓我們在命令列中執行上述命令。

專案 Angular 4-app 成功建立。它安裝了專案在 Angular 4 中執行所需的所有必需軟體包。現在讓我們切換到已建立的專案,該專案位於 Angular 4-app 目錄中。在命令列中更改目錄 - cd Angular 4-app。
我們將使用 Visual Studio Code IDE 來處理 Angular 4;您可以使用任何 IDE,例如 Atom、WebStorm 等。
要下載 Visual Studio Code,請訪問 https://vscode.com.tw/ 並單擊 下載 Windows 版。

單擊 下載 Windows 版 以安裝 IDE 並執行安裝程式以開始使用 IDE。
編輯器如下所示:

我們還沒有在其中啟動任何專案。現在讓我們使用 angular-cli 建立的專案。

我們將考慮 Angular 4-app 專案。讓我們開啟 Angular 4-app 並檢視資料夾結構。

現在我們有了專案的資料夾結構,讓我們使用以下命令編譯我們的專案:
ng serve
ng serve 命令構建應用程式並啟動 Web 伺服器。


Web 伺服器在埠 4200 上啟動。在瀏覽器中鍵入 url https://:4200/ 並檢視輸出。專案編譯完成後,您將收到以下輸出:

在瀏覽器中執行 https://:4200/ 後,您將被定向到以下螢幕:

現在讓我們進行一些更改以顯示以下內容:
“歡迎使用 Angular 4 專案”

我們對檔案進行了更改 – app.component.html 和 app.component.ts。我們將在後續章節中詳細討論這一點。
讓我們完成專案設定。如果您看到我們使用了埠 4200,這是 angular–cli 在編譯時使用的預設埠。如果需要,您可以使用以下命令更改埠:
ng serve --host 0.0.0.0 –port 4205
Angular 4 應用程式資料夾具有以下 資料夾結構:
e2e - 端到端測試資料夾。主要 e2e 用於整合測試,並有助於確保應用程式正常工作。
node_modules - 安裝的 npm 包為 node_modules。您可以開啟資料夾並檢視可用的包。
src - 我們將在其中使用 Angular 4 處理專案的資料夾。
Angular 4 應用程式資料夾具有以下 檔案結構:
.angular-cli.json - 它基本上包含專案名稱、cli 版本等。
.editorconfig - 這是編輯器的配置檔案。
.gitignore - 應將 .gitignore 檔案提交到儲存庫中,以便與克隆儲存庫的任何其他使用者共享忽略規則。
karma.conf.js - 用於透過量角器進行單元測試。karma.conf.js 檔案中提供了專案所需的所有資訊。
package.json - package.json 檔案指示在執行 npm install 時將哪些庫安裝到 node_modules 中。
目前,如果您在編輯器中開啟該檔案,您將看到其中添加了以下模組。
"@angular/animations": "^4.0.0", "@angular/common": "^4.0.0", "@angular/compiler": "^4.0.0", "@angular/core": "^4.0.0", "@angular/forms": "^4.0.0", "@angular/http": "^4.0.0", "@angular/platform-browser": "^4.0.0", "@angular/platform-browser-dynamic": "^4.0.0", "@angular/router": "^4.0.0",
如果您需要新增更多庫,您可以在此處新增它們並執行 npm install 命令。
protractor.conf.js - 這是應用程式所需的測試配置。
tsconfig.json - 它基本上包含編譯期間所需的編譯器選項。
tslint.json - 這是包含編譯時要考慮的規則的配置檔案。
src 資料夾是主資料夾,內部具有不同的檔案結構。
app
它包含下面描述的檔案。這些檔案預設由 angular-cli 安裝。
app.module.ts - 如果您開啟該檔案,您將看到程式碼引用了不同的庫,這些庫已匯入。Angular-cli 使用這些預設庫進行匯入 – angular/core、platform-browser。名稱本身解釋了庫的使用。
它們被匯入並儲存到諸如 declarations、imports、providers 和 bootstrap 之類的變數中。
import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }
declarations - 在 declarations 中,儲存對元件的引用。Appcomponent 是在啟動新專案時建立的預設元件。我們將在不同的部分學習如何建立新元件。
imports - 這將包含如上所示匯入的模組。目前,BrowserModule 是匯入的一部分,它是從 @angular/platform-browser 匯入的。
providers - 這將包含對建立的服務的引用。服務將在後續章節中討論。
bootstrap - 這包含對建立的預設元件的引用,即 AppComponent。
app.component.css - 您可以在此處編寫您的 css 結構。現在,我們已將背景顏色新增到 div 中,如下所示。
.divdetails{ background-color: #ccc; }
app.component.html - html 程式碼將在此檔案中可用。
<!--The content below is only a placeholder and can be replaced.--> <div class = "divdetails"> <div style = "text-align:center"> <h1> Welcome to {{title}}! </h1> <img width = "300" src = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv ZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxOS4xLjAsIFNWRyBFe HBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjxzdmcgdmVyc2lvbj0iMS4 xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaH R0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHZpZXdCb3g9IjAgMCAyNTAg MjUwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyNTAgMjUwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2 ZSI+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KCS5zdDB7ZmlsbDojREQwMDMxO30NCgkuc3Qxe2ZpbGw6I0M zMDAyRjt9DQoJLnN0MntmaWxsOiNGRkZGRkY7fQ0KPC9zdHlsZT4NCjxnPg0KCTxwb2x5Z29uIGNsYXNzPSJzdD AiIHBvaW50cz0iMTI1LDMwIDEyNSwzMCAxMjUsMzAgMzEuOSw2My4yIDQ2LjEsMTg2LjMgMTI1LDIzMCAxMjUsMj MwIDEyNSwyMzAgMjAzLjksMTg2LjMgMjE4LjEsNjMuMiAJIi8+DQoJPHBvbHlnb24gY2xhc3M9InN0MSIgcG9pbn RzPSIxMjUsMzAgMTI1LDUyLjIgMTI1LDUyLjEgMTI1LDE1My40IDEyNSwxNTMuNCAxMjUsMjMwIDEyNSwyMzAgMj AzLjksMTg2LjMgMjE4LjEsNjMuMiAxMjUsMzAgCSIvPg0KCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMjUsNTIuMU w2Ni44LDE4Mi42aDBoMjEuN2gwbDExLjctMjkuMmg0OS40bDExLjcsMjkuMmgwaDIxLjdoMEwxMjUsNTIuMUwxMj UsNTIuMUwxMjUsNTIuMUwxMjUsNTIuMQ0KCQlMMTI1LDUyLjF6IE0xNDIsMTM1LjRIMTA4bDE3LTQwLjlMMTQyLD EzNS40eiIvPg0KPC9nPg0KPC9zdmc+DQo="> </div> <h2>Here are some links to help you start: </h2> <ul> <li> <h2> <a target = "_blank" href="https://angular.io/tutorial">Tour of Heroes</a> </h2> </li> <li> <h2> <a target = "_blank" href = "https://github.com/angular/angular-cli/wiki"> CLI Documentation </a> </h2> </li> <li> <h2> <a target="_blank" href="http://angularjs.blogspot.ca/">Angular blog</a> </h2> </li> </ul> </div>
這是專案建立時當前可用的預設 html 程式碼。
app.component.spec.ts - 這些是自動生成的包含源元件單元測試的檔案。
app.component.ts - 元件的類在此處定義。您可以在 .ts 檔案中處理 html 結構。處理將包括諸如連線到資料庫、與其他元件互動、路由、服務等活動。
檔案的結構如下:
import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'app'; }
Assets
您可以在此資料夾中儲存影像、js 檔案。
Environment
此資料夾包含生產或開發環境的詳細資訊。該資料夾包含兩個檔案。
- environment.prod.ts
- environment.ts
這兩個檔案都包含有關是否應在生產環境或開發環境中編譯最終檔案的詳細資訊。
Angular 4 應用程式資料夾的其他檔案結構包括以下內容:
favicon.ico
這是一個通常位於網站根目錄的檔案。
index.html
這是在瀏覽器中顯示的檔案。
<!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>HTTP Search Param</title> <base href = "/"> <link href = "https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <link href = "https://fonts.googleapis.com/css?family=Roboto|Roboto+Mono" rel="stylesheet"> <link href = "styles.c7c7b8bf22964ff954d3.bundle.css" rel="stylesheet"> <meta name = "viewport" content="width=device-width, initial-scale=1"> <link rel = "icon" type="image/x-icon" href="favicon.ico"> </head> <body> <app-root></app-root> </body> </html>
主體包含 <app-root></app-root>。這是在 app.component.ts 檔案中使用的選擇器,並將顯示來自 app.component.html 檔案的詳細資訊。
main.ts
main.ts 是我們從那裡開始專案開發的檔案。它從匯入我們需要的基本模組開始。現在,如果您看到 angular/core、angular/platform-browser-dynamic、app.module 和 environment 在 angular-cli 安裝和專案設定期間預設匯入。
import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } platformBrowserDynamic().bootstrapModule(AppModule);
platformBrowserDynamic().bootstrapModule(AppModule) 包含父模組引用 AppModule。因此,當它在瀏覽器中執行時,呼叫的檔案是 index.html。index.html 在內部引用 main.ts,當以下程式碼執行時,它呼叫父模組,即 AppModule:
platformBrowserDynamic().bootstrapModule(AppModule);
當呼叫 AppModule 時,它會呼叫 app.module.ts,後者根據 bootstrap 進一步呼叫 AppComponent,如下所示:
bootstrap: [AppComponent]
在 app.component.ts 中,有一個 **selector: app-root**,它被用在 index.html 檔案中。這將顯示 app.component.html 中的內容。
瀏覽器中將顯示以下內容:

polyfill.ts
這主要用於向後相容。
styles.css
這是專案所需的樣式檔案。
test.ts
這裡將處理用於測試專案的單元測試用例。
tsconfig.app.json
這在編譯期間使用,它包含執行應用程式所需的配置詳細資訊。
tsconfig.spec.json
這有助於維護測試的詳細資訊。
typings.d.ts
它用於管理 TypeScript 定義。
最終的檔案結構如下所示:
