2017-11-06 19:02:18 +01:00
# The Application Shell
2018-10-21 17:44:10 +08:00
# 应用的外壳
2018-10-11 11:37:30 -07:00
You begin by creating an initial application using the Angular CLI. Throughout this tutorial, you’ ll modify and extend that starter application to create the Tour of Heroes app.
2018-03-08 13:09:40 +08:00
2018-10-21 17:44:10 +08:00
首先,使用 Angular CLI 来创建最初的应用程序。
在本教程中,你将修改并扩展这个入门级的应用程序,以创建出《英雄指南》应用。
2018-10-11 11:37:30 -07:00
In this part of the tutorial, you'll do the following:
2017-11-06 19:02:18 +01:00
2019-01-06 19:34:32 +08:00
在教程的这个部分,你将完成下列工作:
2018-10-21 17:44:10 +08:00
2018-10-11 11:37:30 -07:00
1. Set up your environment.
2018-10-21 17:44:10 +08:00
设置开发环境。
2018-10-11 11:37:30 -07:00
2. Create a new workspace and initial app project.
2018-10-21 17:44:10 +08:00
2019-02-22 03:52:36 +08:00
创建新的工作区,并初始化应用项目。
2018-10-21 17:44:10 +08:00
2018-10-11 11:37:30 -07:00
3. Serve the application.
2018-10-21 17:44:10 +08:00
启动开发服务器。
2018-10-11 11:37:30 -07:00
4. Make changes to the application.
2018-03-08 13:09:40 +08:00
2018-10-21 17:44:10 +08:00
修改此应用。
2018-03-18 07:26:14 +08:00
2018-10-11 11:37:30 -07:00
## Set up your environment
2017-11-06 19:02:18 +01:00
2019-06-07 12:29:04 +08:00
## 搭建开发环境
2018-10-21 17:44:10 +08:00
2019-04-02 00:12:55 -06:00
To set up your development environment, follow the instructions in [Local Environment Setup ](guide/setup-local "Setting up for Local Development" ).
2017-11-06 19:02:18 +01:00
2019-06-07 12:29:04 +08:00
要想搭建开发环境,请遵循[搭建本地环境 ](guide/setup-local "Setting up for Local Development" )中的步骤进行操作。
2018-03-08 13:09:40 +08:00
2018-10-11 11:37:30 -07:00
## Create a new workspace and an initial application
2017-11-06 19:02:18 +01:00
2019-02-22 03:52:36 +08:00
## 创建新的工作区和一个初始应用
2018-10-21 17:44:10 +08:00
2018-10-11 11:37:30 -07:00
You develop apps in the context of an Angular [workspace ](guide/glossary#workspace ). A workspace contains the files for one or more [projects ](guide/glossary#project ). A project is the set of files that comprise an app, a library, or end-to-end (e2e) tests. For this tutorial, you will create a new workspace.
2017-11-06 19:02:18 +01:00
2019-02-22 03:52:36 +08:00
Angular 的[工作区 ](guide/glossary#workspace )就是你开发应用所在的上下文环境。一个工作区包含一个或多个[项目 ](guide/glossary#project )所需的文件。
2018-10-21 17:44:10 +08:00
每个项目都是一组由应用、库或端到端( e2e) 测试组成的文件集合。
2019-02-22 03:52:36 +08:00
在本教程中,你将创建一个新的工作区。
2018-10-21 17:44:10 +08:00
2018-10-11 11:37:30 -07:00
To create a new workspace and an initial app project:
2018-03-08 13:09:40 +08:00
2019-02-22 03:52:36 +08:00
要想创建一个新的工作区和一个初始应用项目,需要:
2018-10-21 17:44:10 +08:00
2018-10-11 11:37:30 -07:00
1. Ensure that you are not already in an Angular workspace folder. For example, if you have previously created the Getting Started workspace, change to the parent of that folder.
2019-01-01 22:17:43 +08:00
2019-02-22 03:52:36 +08:00
确保你现在没有位于 Angular 工作区的文件夹中。例如,如果你之前已经创建过 "快速上手" 工作区,请回到其父目录中。
2019-01-01 22:17:43 +08:00
2018-10-11 11:37:30 -07:00
2. Run the CLI command `ng new` and provide the name `angular-tour-of-heroes` , as shown here:
2018-03-30 15:02:03 -06:00
2018-10-21 17:44:10 +08:00
运行 CLI 命令 `ng new` ,空间名请使用 `angular-tour-of-heroes` ,如下所示:
2018-05-15 13:32:40 +08:00
2018-10-21 17:43:29 +08:00
< code-example language = "sh" class = "code-shell" >
ng new angular-tour-of-heroes
< / code-example >
2018-05-15 13:32:40 +08:00
2018-10-11 11:37:30 -07:00
3. The `ng new` command prompts you for information about features to include in the initial app project. Accept the defaults by pressing the Enter or Return key.
2018-05-15 13:32:40 +08:00
2018-10-21 17:44:10 +08:00
`ng new` 命令会提示你输入要在初始应用项目中包含哪些特性,请按 Enter 或 Return 键接受其默认值。
2018-10-11 11:37:30 -07:00
The Angular CLI installs the necessary Angular `npm` packages and other dependencies. This can take a few minutes.
2018-05-15 13:32:40 +08:00
2018-10-21 17:44:10 +08:00
Angular CLI 会安装必要的 Angular `npm` 包和其它依赖项。这可能需要几分钟。
2018-10-11 11:37:30 -07:00
It also creates the following workspace and starter project files:
2018-05-15 13:32:40 +08:00
2019-02-22 03:52:36 +08:00
它还会创建下列工作区和初始项目的文件:
2018-10-21 17:44:10 +08:00
2018-10-11 11:37:30 -07:00
* A new workspace, with a root folder named `angular-tour-of-heroes` .
2019-01-01 22:17:43 +08:00
2019-02-22 03:52:36 +08:00
新的工作区,其根目录名叫 `angular-tour-of-heroes` 。
2019-01-01 22:17:43 +08:00
2018-10-11 11:37:30 -07:00
* An initial skeleton app project, also called `angular-tour-of-heroes` (in the `src` subfolder).
2019-01-01 22:17:43 +08:00
2018-10-21 17:44:10 +08:00
一个最初的骨架应用项目,同样叫做 `angular-tour-of-heroes` (位于 `src` 子目录下)。
2019-01-01 22:17:43 +08:00
2018-10-11 11:37:30 -07:00
* An end-to-end test project (in the e2e subfolder).
2019-01-01 22:17:43 +08:00
2018-10-21 17:44:10 +08:00
一个端到端测试项目(位于 e2e 子目录下)。
2019-01-01 22:17:43 +08:00
2018-10-11 11:37:30 -07:00
* Related configuration files.
2019-01-01 22:17:43 +08:00
2018-10-21 17:44:10 +08:00
相关的配置文件。
2018-10-11 11:37:30 -07:00
The initial app project contains a simple Welcome app, ready to run.
2018-05-15 13:32:40 +08:00
2018-10-21 17:44:10 +08:00
初始应用项目是一个简单的 "欢迎" 应用,随时可以运行它。
2017-11-06 19:02:18 +01:00
## Serve the application
2018-03-08 13:09:40 +08:00
## 启动应用服务器
2018-10-11 11:37:30 -07:00
Go to the workspace directory and launch the application.
2017-11-06 19:02:18 +01:00
2019-02-22 03:52:36 +08:00
进入工作区目录,并启动这个应用。
2018-03-08 13:09:40 +08:00
2017-11-06 19:02:18 +01:00
< code-example language = "sh" class = "code-shell" >
cd angular-tour-of-heroes
ng serve --open
< / code-example >
2018-03-03 21:06:01 +08:00
2018-07-19 15:00:08 -07:00
< div class = "alert is-helpful" >
2017-11-06 19:02:18 +01:00
The `ng serve` command builds the app, starts the development server,
watches the source files, and rebuilds the app as you make changes to those files.
2018-03-08 13:09:40 +08:00
`ng serve` 命令会构建本应用、启动开发服务器、监听源文件,并且当那些文件发生变化时重新构建本应用。
2017-11-06 19:02:18 +01:00
The `--open` flag opens a browser to `http://localhost:4200/` .
2018-03-08 13:09:40 +08:00
`--open` 标志会打开浏览器,并访问 `http://localhost:4200/` 。
2017-11-06 19:02:18 +01:00
< / div >
You should see the app running in your browser.
2018-03-08 13:09:40 +08:00
你会发现本应用正运行在浏览器中。
2017-11-06 19:02:18 +01:00
## Angular components
2018-03-08 13:09:40 +08:00
## Angular 组件
2017-11-06 19:02:18 +01:00
The page you see is the _application shell_ .
The shell is controlled by an Angular **component** named `AppComponent` .
2018-03-08 13:09:40 +08:00
你所看到的这个页面就是*应用的外壳*。
这个外壳是被一个名叫 `AppComponent` 的 Angular 组件控制的。
2017-11-06 19:02:18 +01:00
_Components_ are the fundamental building blocks of Angular applications.
They display data on the screen, listen for user input, and take action based on that input.
2018-03-08 13:09:40 +08:00
*组件*是 Angular 应用中的基本构造块。
它们在屏幕上显示数据,监听用户输入,并且根据这些输入执行相应的动作。
2018-10-11 11:37:30 -07:00
## Make changes to the application
2017-11-06 19:02:18 +01:00
2018-03-08 13:09:40 +08:00
## 修改应用标题
2018-10-11 11:37:30 -07:00
Open the project in your favorite editor or IDE and navigate to the `src/app` folder to make some changes to the starter app.
2017-11-06 19:02:18 +01:00
2018-10-21 17:44:10 +08:00
用你最喜欢的编辑器或 IDE 打开这个项目,并访问 `src/app` 目录,来对这个起始应用做一些修改。
2018-03-08 13:09:40 +08:00
2017-11-06 19:02:18 +01:00
You'll find the implementation of the shell `AppComponent` distributed over three files:
2018-03-08 13:09:40 +08:00
你会在这里看到 `AppComponent` 壳的三个实现文件:
2017-11-06 19:02:18 +01:00
1. `app.component.ts` — the component class code, written in TypeScript.
2018-03-03 21:06:01 +08:00
2018-03-08 13:09:40 +08:00
`app.component.ts` — 组件的类代码,这是用 TypeScript 写的。
2018-10-21 17:44:10 +08:00
2017-11-06 19:02:18 +01:00
1. `app.component.html` — the component template, written in HTML.
2018-03-18 07:26:14 +08:00
`app.component.html` — 组件的模板,这是用 HTML 写的。
2018-03-08 13:09:40 +08:00
2018-03-03 21:06:01 +08:00
1. `app.component.css` — the component's private CSS styles.
2017-11-06 19:02:18 +01:00
2018-03-22 20:20:43 +08:00
`app.component.css` — 组件的私有 CSS 样式。
2018-03-08 13:09:40 +08:00
2018-10-11 11:37:30 -07:00
### Change the application title
2017-11-06 19:02:18 +01:00
2018-10-21 17:43:29 +08:00
### 更改应用标题
2017-11-06 19:02:18 +01:00
Open the component class file (`app.component.ts` ) and change the value of the `title` property to 'Tour of Heroes'.
2018-03-08 13:09:40 +08:00
打开组件的类文件 (`app.component.ts` ),并把 `title` 属性的值修改为 'Tour of Heroes' (英雄指南)。
2018-10-11 13:29:59 +02:00
< code-example path = "toh-pt0/src/app/app.component.ts" region = "set-title" header = "app.component.ts (class title property)" linenums = "false" >
2017-11-06 19:02:18 +01:00
< / code-example >
2017-11-09 23:37:36 +00:00
Open the component template file (`app.component.html` ) and
2017-11-06 19:02:18 +01:00
delete the default template generated by the Angular CLI.
Replace it with the following line of HTML.
2018-03-08 13:09:40 +08:00
打开组件的模板文件 `app.component.html` 并清空 Angular CLI 自动生成的默认模板。改为下列 HTML 内容:
2018-10-11 11:37:30 -07:00
< code-example path = "toh-pt0/src/app/app.component.html"
2018-10-11 13:29:59 +02:00
header="app.component.html (template)" linenums="false">
2017-11-06 19:02:18 +01:00
< / code-example >
2018-10-11 11:37:30 -07:00
The double curly braces are Angular's *interpolation binding* syntax.
This interpolation binding presents the component's `title` property value
2017-11-06 19:02:18 +01:00
inside the HTML header tag.
2018-03-08 13:09:40 +08:00
双花括号语法是 Angular 的*插值绑定*语法。
2018-03-08 17:07:55 +08:00
这个插值绑定的意思是把组件的 `title` 属性的值绑定到 HTML 中的 `h1` 标记中。
2018-03-08 13:09:40 +08:00
2017-11-06 19:02:18 +01:00
The browser refreshes and displays the new application title.
2018-03-08 13:09:40 +08:00
浏览器自动刷新,并且显示出了新的应用标题。
2017-11-06 19:02:18 +01:00
{@a app-wide-styles}
2018-10-11 11:37:30 -07:00
### Add application styles
2017-11-06 19:02:18 +01:00
2018-10-21 17:44:10 +08:00
### 添加应用样式
2018-03-08 13:09:40 +08:00
2017-11-06 19:02:18 +01:00
Most apps strive for a consistent look across the application.
The CLI generated an empty `styles.css` for this purpose.
Put your application-wide styles there.
2018-03-08 13:09:40 +08:00
大多数应用都会努力让整个应用保持一致的外观。
因此, CLI 会生成一个空白的 `styles.css` 文件。
你可以把全应用级别的样式放进去。
2018-09-24 15:49:56 -07:00
Open `src/styles.css` and add the code below to the file.
2017-11-06 19:02:18 +01:00
2019-02-17 00:00:16 +08:00
打开 `src/styles.css` 并把下列代码添加到此文件中。
2018-03-08 13:09:40 +08:00
2018-10-11 13:29:59 +02:00
< code-example path = "toh-pt0/src/styles.1.css" header = "src/styles.css (excerpt)" >
2017-11-06 19:02:18 +01:00
< / code-example >
## Final code review
2018-03-08 17:07:55 +08:00
## 查看最终代码
2018-03-08 13:09:40 +08:00
2018-10-11 11:37:30 -07:00
The source code for this tutorial and the complete _Tour of Heroes_ global styles
are available in the < live-example > < / live-example > .
2017-11-06 19:02:18 +01:00
2018-03-08 13:09:40 +08:00
本教程的源文件以及*英雄指南*的完整全局样式可以在 < live-example > < / live-example > 中看到。
2018-10-11 11:37:30 -07:00
Here are the code files discussed on this page.
2017-11-06 19:02:18 +01:00
2018-03-08 13:09:40 +08:00
下面是本页所提到的源代码:
2017-11-06 19:02:18 +01:00
< code-tabs >
2018-10-11 13:29:59 +02:00
< code-pane header = "src/app/app.component.ts" path = "toh-pt0/src/app/app.component.ts" >
2017-11-06 19:02:18 +01:00
< / code-pane >
2018-10-11 13:29:59 +02:00
< code-pane header = "src/app/app.component.html" path = "toh-pt0/src/app/app.component.html" >
2017-11-06 19:02:18 +01:00
< / code-pane >
2018-10-11 11:37:30 -07:00
< code-pane
2018-10-11 13:29:59 +02:00
header="src/styles.css (excerpt)"
2017-11-06 19:02:18 +01:00
path="toh-pt0/src/styles.1.css">
< / code-pane >
< / code-tabs >
## Summary
2018-03-03 21:06:01 +08:00
## 小结
2017-11-06 19:02:18 +01:00
* You created the initial application structure using the Angular CLI.
2018-03-03 21:06:01 +08:00
2018-03-24 13:12:42 +08:00
你使用 Angular CLI 创建了初始的应用结构。
2018-03-08 13:09:40 +08:00
2017-11-06 19:02:18 +01:00
* You learned that Angular components display data.
2018-03-03 21:06:01 +08:00
2018-03-24 13:12:42 +08:00
你学会了使用 Angular 组件来显示数据。
2018-03-08 13:09:40 +08:00
2018-03-24 16:33:17 +08:00
* You used the double curly braces of interpolation to display the app title.
2018-03-08 13:09:40 +08:00
2018-03-24 16:33:17 +08:00
你使用双花括号插值表达式显示了应用标题。