210 lines
7.1 KiB
Markdown
Raw Normal View History

2017-11-06 19:02:18 +01:00
# The Application Shell
2018-03-08 13:09:40 +08:00
# 应用的“外壳”
2017-11-06 19:02:18 +01:00
## Install the Angular CLI
2018-03-08 13:09:40 +08:00
## 安装 Angular CLI 命令行工具
2017-11-06 19:02:18 +01:00
Install the [Angular CLI](https://github.com/angular/angular-cli), if you haven't already done so.
2018-03-08 13:09:40 +08:00
如果还没有安装 [Angular CLI](https://github.com/angular/angular-cli),请执行:
2017-11-06 19:02:18 +01:00
<code-example language="sh" class="code-shell">
npm install -g @angular/cli
</code-example>
## Create a new application
2018-03-08 13:09:40 +08:00
## 创建新应用
2017-11-06 19:02:18 +01:00
Create a new project named `angular-tour-of-heroes` with this CLI command.
2018-03-08 13:09:40 +08:00
使用 CLI 命令创建一个名叫 `angular-tour-of-heroes` 的新项目。
2017-11-06 19:02:18 +01:00
<code-example language="sh" class="code-shell">
ng new angular-tour-of-heroes
</code-example>
The Angular CLI generated a new project with a default application and supporting files.
2018-03-08 13:09:40 +08:00
这样 Angular CLI 就创建了一个带默认应用及其支持文件的新项目。
2018-05-15 13:32:40 +08:00
<div class="l-sub-section">
You can add pre-packaged functionality to a new project by using the `ng add` command. The `ng add` command transforms a project by applying the schematics in the specified package.
For more information, see the [Angular CLI documentation.](https://github.com/angular/angular-cli/wiki/add "Angular CLI documentation")
你可以使用 `ng add` 命令往新项目中添加一些预先打包好的功能。
`ng add` 命令会通过应用来自特定 NPM 包中的图纸schematic来转换此项目。
要了解更多,参见 [Angular CLI 文档](https://github.com/angular/angular-cli/wiki/add "Angular CLI documentation")。
Angular Material provides schematics for typical app layouts.
See the [Angular Material documentation](https://material.angular.io/guides "Angular Material documentation") for details.
比如 Angular Material 就为一些典型布局提供了图纸。参见 [Angular Material 文档](https://material.angular.io/guides "Angular Material documentation")。
</div>
2017-11-06 19:02:18 +01:00
## Serve the application
2018-03-08 13:09:40 +08:00
## 启动应用服务器
2017-11-06 19:02:18 +01:00
Go to the project directory and launch the application.
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
2017-11-06 19:02:18 +01:00
<div class="l-sub-section">
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 应用中的基本构造块。
它们在屏幕上显示数据,监听用户输入,并且根据这些输入执行相应的动作。
2017-11-06 19:02:18 +01:00
## Change the application title
2018-03-08 13:09:40 +08:00
## 修改应用标题
2017-11-06 19:02:18 +01:00
Open the project in your favorite editor or IDE and navigate to the `src/app` folder.
2018-03-08 13:09:40 +08:00
用你最喜欢的编辑器或 IDE 打开这个项目,并访问 `src/app` 目录。
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`&mdash; 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`&mdash; 组件的类代码,这是用 TypeScript 写的。
2017-11-06 19:02:18 +01:00
1. `app.component.html`&mdash; the component template, written in HTML.
`app.component.html`&mdash; 组件的模板,这是用 HTML 写的。
2018-03-08 13:09:40 +08:00
2018-03-03 21:06:01 +08:00
1. `app.component.css`&mdash; the component's private CSS styles.
2017-11-06 19:02:18 +01:00
`app.component.css`&mdash; 组件的私有 CSS 样式。
2018-03-08 13:09:40 +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' (英雄指南)。
2017-11-06 19:02:18 +01:00
<code-example path="toh-pt0/src/app/app.component.ts" region="set-title" title="app.component.ts (class title property)" linenums="false">
</code-example>
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 内容:
2017-11-06 19:02:18 +01:00
<code-example path="toh-pt0/src/app/app.component.html"
title="app.component.html (template)" linenums="false">
</code-example>
The double curly braces are Angular's *interpolation binding* syntax.
This interpolation binding presents the component's `title` property value
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}
## Add application styles
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` 文件。
你可以把全应用级别的样式放进去。
2017-11-06 19:02:18 +01:00
Here's an excerpt from the `styles.css` for the _Tour of Heroes_ sample app.
2018-03-08 13:09:40 +08:00
下面是这个*英雄指南*范例应用中 `styles.css` 文件的片段。
2017-11-06 19:02:18 +01:00
<code-example path="toh-pt0/src/styles.1.css" title="src/styles.css (excerpt)">
</code-example>
## Final code review
2018-03-08 17:07:55 +08:00
## 查看最终代码
2018-03-08 13:09:40 +08:00
2017-11-06 19:02:18 +01:00
The source code for this tutorial and the complete _Tour of Heroes_ global styles
are available in the <live-example></live-example>.
2018-03-08 13:09:40 +08:00
本教程的源文件以及*英雄指南*的完整全局样式可以在 <live-example></live-example> 中看到。
2018-03-07 11:25:56 +08: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>
<code-pane title="src/app/app.component.ts" path="toh-pt0/src/app/app.component.ts">
</code-pane>
<code-pane title="src/app/app.component.html" path="toh-pt0/src/app/app.component.html">
</code-pane>
<code-pane
title="src/styles.css (excerpt)"
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
你使用双花括号插值表达式显示了应用标题。