diff --git a/public/docs/ts/latest/guide/architecture.jade b/public/docs/ts/latest/guide/architecture.jade index e2114124e9..8871061048 100644 --- a/public/docs/ts/latest/guide/architecture.jade +++ b/public/docs/ts/latest/guide/architecture.jade @@ -420,13 +420,13 @@ figure Here is the `@Component` decorator, which identifies the class immediately below it as a component class. - 这里看到`@Component`!{_decoratorCn},它把紧随其后的类标记成了组件类。 + 这里看到`@Component`装饰器,它把紧随其后的类标记成了组件类。 :marked The `@Component` decorator takes a required configuration object with the information Angular needs to create and present the component and its view. - `@Component`!{_decoratorCn}能接受一个配置对象, Angular 会基于这些信息创建和展示组件及其视图。 + `@Component`装饰器能接受一个配置对象, Angular 会基于这些信息创建和展示组件及其视图。 Here are a few of the most useful `@Component` configuration options: @@ -468,8 +468,8 @@ figure Apply other metadata decorators in a similar fashion to guide Angular behavior. `@Injectable`, `@Input`, and `@Output` are a few of the more popular decorators. - 其它元数据!{_decoratorCn}用类似的方式来指导 Angular 的行为。 - 例如`@Injectable`、`@Input`和`@Output`等是一些最常用的!{_decoratorCn}。 + 其它元数据装饰器用类似的方式来指导 Angular 的行为。 + 例如`@Injectable`、`@Input`和`@Output`等是一些最常用的装饰器。
:marked The architectural takeaway is that you must add metadata to your code @@ -586,7 +586,7 @@ figure A component is a *directive-with-a-template*; a `@Component` decorator is actually a `@Directive` decorator extended with template-oriented features. - 组件是一个*带模板的指令*;`@Component`!{_decoratorCn}实际上就是一个`@Directive`!{_decoratorCn},只是扩展了一些面向模板的特性。 + 组件是一个*带模板的指令*;`@Component`装饰器实际上就是一个`@Directive`装饰器,只是扩展了一些面向模板的特性。
.l-sub-section diff --git a/public/docs/ts/latest/guide/dependency-injection.jade b/public/docs/ts/latest/guide/dependency-injection.jade index f7a151c7f0..f79a829c28 100644 --- a/public/docs/ts/latest/guide/dependency-injection.jade +++ b/public/docs/ts/latest/guide/dependency-injection.jade @@ -934,7 +934,7 @@ code-example(format="nocode"). :marked ### The *Provider* class and _provide_ object literal - ### *Provider*类!{_andProvideFnCn} + ### *Provider*类和一个提供商的字面量 :marked You wrote the `providers` array like this: @@ -962,7 +962,7 @@ code-example(format="nocode"). which you can think of as a *recipe* for creating the dependency value. There are many ways to create dependency values just as there are many ways to write a recipe. - 第二个是!{_secondParamCn}。 + 第二个是一个提供商定义对象。 可以把它看做是指导如何创建依赖值的*配方*。 有很多方式创建依赖值…… 也有很多方式可以写配方。 @@ -1302,7 +1302,8 @@ a#injection-token to define and use an InjectionToken. The definition of such a token looks like this: - 解决方案是定义和使用 !{opaquetoken}(不透明的令牌)。定义方式类似于这样: + 解决方案是为非类依赖定义和使用InjectionToken作为提供商令牌。 + 定义方式是这样的: +makeExample('dependency-injection/ts/src/app/app.config.ts','token')(format='.') :marked @@ -1328,7 +1329,7 @@ a#injection-token Although the `AppConfig` interface plays no role in dependency injection, it supports typing of the configuration object within the class. - 虽然`Config`!{configType}接口在依赖注入过程中没有任何作用,但它为该类中的配置对象提供了强类型信息。 + 虽然`AppConfig`接口在依赖注入过程中没有任何作用,但它为该类中的配置对象提供了强类型信息。 :marked Aternatively, you can provide and inject the configuration object in an ngModule like `AppModule`. diff --git a/public/docs/ts/latest/guide/displaying-data.jade b/public/docs/ts/latest/guide/displaying-data.jade index a0fddc0d1d..e73524bf4e 100644 --- a/public/docs/ts/latest/guide/displaying-data.jade +++ b/public/docs/ts/latest/guide/displaying-data.jade @@ -248,7 +248,8 @@ figure.image-display repeat items for any [iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) object. 本例中,`ngFor`用于显示一个“数组”, - 但`ngFor`可以为任何[可迭代的 (iterable) ](!{_iterableUrl})对象重复渲染条目。 + 但`ngFor`可以为任何[可迭代的 (iterable) ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols)对象重复渲染条目。 + :marked Now the heroes appear in an unordered list. @@ -281,7 +282,7 @@ figure.image-display Create a new file in the `app` folder called `hero.ts` with the following code: - 在`!{_appDir}`目录下创建一个名叫的新文件,内容如下: + 在`app`目录下创建一个名叫的新文件,内容如下: +makeExcerpt('src/app/hero.ts') diff --git a/public/docs/ts/latest/guide/server-communication.jade b/public/docs/ts/latest/guide/server-communication.jade index 21dc0d6d9f..79d84e3397 100644 --- a/public/docs/ts/latest/guide/server-communication.jade +++ b/public/docs/ts/latest/guide/server-communication.jade @@ -196,8 +196,8 @@ block demos-list The Angular Http client communicates with the server using a familiar HTTP request/response protocol. The `Http` client is one of a family of services in the Angular HTTP library. - 我们通过 !{_Angular_Http}客户端,使用熟悉的 HTTP 请求/回应协议与服务器通讯。 - `!{_Http}`客户端是!{_Angular_http_libraryCn}所提供的一系列服务之一。 + 我们通过 Http 客户端,使用熟悉的 HTTP 请求/回应协议与服务器通讯。 + `Http`客户端是Angular的HTTP库所提供的一系列服务之一。 .l-sub-section :marked @@ -205,7 +205,7 @@ block demos-list the Angular HTTP library because the `systemjs.config.js` file maps to that module name. - 当我们从`@angular/http`模块中导入服务时,SystemJS 知道该如何从 !{_Angular_http_libraryCn}中加载它们, + 当我们从`@angular/http`模块中导入服务时,SystemJS 知道该如何从Angular的HTTP库中加载它们, 这是因为`systemjs.config.js`文件已经注册过这个模块名。 :marked @@ -261,7 +261,7 @@ block http-providers 我们的第一个演示是《英雄指南(TOH)》[教程](../tutorial)的一个迷你版。 这个版本从服务器获取一些英雄,把它们显示在列表中,还允许我们添加新的英雄并将其保存到服务器。 - 借助 !{_Angular_Http}客户端,我们通过`XMLHttpRequest (XHR)`与服务器通讯。 + 借助 Angular 的 `Http` 客户端,我们通过`XMLHttpRequest (XHR)`与服务器通讯。 It works like this: @@ -317,7 +317,7 @@ a#HeroListComponent The component doesn't know or care how it gets the data. It delegates to the `HeroService`. - 这个组件**不会直接和 !{_Angular_Http}客户端打交道**! + 这个组件**不会直接和 Angular 的 `Http` 客户端打交道**! 它既不知道也不关心我们如何获取数据,这些都被委托给了`HeroService`去做。 This is a golden rule: **always delegate data access to a supporting service class**. @@ -347,7 +347,7 @@ block getheroes-and-create The service's `getHeroes()` and `create()` methods return an `Observable` of hero data that the Angular Http client fetched from the server. 服务的`getHeroes()`和`addHero()`方法返回一个英雄数据的可观察对象 (`Observable`), - 这些数据是由 !{_Angular_Http}从服务器上获取的。 + 这些数据是由 Angular 的 `Http` 客户端从服务器上获取的。 Think of an `Observable` as a stream of events published by some source. To listen for events in this stream, ***subscribe*** to the `Observable`. @@ -381,7 +381,7 @@ a#HeroService :marked You can revise that `HeroService` to get the heroes from the server using the Angular Http client service: - 在本章中,我们会修改`HeroService`,改用 !{_Angular_Http}客户端服务来从服务器上获取英雄列表: + 在本章中,我们会修改`HeroService`,改用 Angular 的 `Http` 客户端来从服务器上获取英雄列表: +makeExample('server-communication/ts/src/app/toh/hero.service.ts', 'v1', 'src/app/toh/hero.service.ts (revised)') @@ -389,14 +389,14 @@ a#HeroService Notice that the Angular Http client service is [injected](dependency-injection.html) into the `HeroService` constructor. - 注意,这个 !{_Angular_Http}客户端服务[被注入](dependency-injection.html)到了`HeroService`的构造函数中。 + 注意,这个 Angular `Http` 客户端服务[被注入](dependency-injection.html)到了`HeroService`的构造函数中。 +makeExample('server-communication/ts/src/app/toh/hero.service.ts', 'ctor') :marked Look closely at how to call `http.get`: - 仔细看看我们是如何调用`!{_priv}http.get`的 + 仔细看看我们是如何调用`http.get`的 +makeExample('server-communication/ts/src/app/toh/hero.service.ts', 'http-get', 'src/app/toh/hero.service.ts (getHeroes)')(format=".") :marked @@ -487,7 +487,7 @@ a#extract-data Remember that the `getHeroes()` method used an `extractData()` helper method to map the `http.get` response object to heroes: - 记住,`getHeroes()`借助一个`!{_priv}extractData`辅助方法来把`!{_priv}http.get`的响应对象映射成了英雄列表: + 记住,`getHeroes()`借助一个`extractData`辅助方法来把`http.get`的响应对象映射成了英雄列表: +makeExample('server-communication/ts/src/app/toh/hero.service.ts', 'extract-data', 'src/app/toh/hero.service.ts (excerpt)')(format=".") @@ -721,7 +721,7 @@ a#json-results As with `getHeroes()`, use the `extractData()` helper to [extract the data](#extract-data) from the response. - 像`getHeroes()`中一样,我们可以使用`!{_priv}extractData()`辅助函数从响应中[提取出数据](#extract-data)。 + 像`getHeroes()`中一样,我们可以使用`extractData()`辅助函数从响应中[提取出数据](#extract-data)。 block hero-list-comp-add-hero :marked @@ -832,7 +832,7 @@ h2#cors 跨域请求:Wikipedia 范例 You just learned how to make `XMLHttpRequests` using the Angular Http service. This is the most common approach to server communication, but it doesn't work in all scenarios. - 我们刚刚学习了用 !{_Angular_Http}服务发起`XMLHttpRequests`。 + 我们刚刚学习了用 Angular `Http` 服务发起`XMLHttpRequests`。 这是与服务器通讯时最常用的方法。 但它不适合所有场景。 diff --git a/public/docs/ts/latest/guide/setup.jade b/public/docs/ts/latest/guide/setup.jade index 4f5814deb3..937fafbe48 100644 --- a/public/docs/ts/latest/guide/setup.jade +++ b/public/docs/ts/latest/guide/setup.jade @@ -18,13 +18,13 @@ a#develop-locally Setting up a new project on your machine is quick and easy with the **QuickStart seed**, maintained [on github](https://github.com/angular/quickstart "Install the github QuickStart repo"). - 利用 [github 上](!{_qsRepo} "安装 github 《快速起步》库")的**《快速起步》种子**在你的电脑上搭建一个新项目是很快很容易的。 + 利用 [github 上](https://github.com/angular/quickstart "安装 github 《快速起步》库")的**《快速起步》种子**在你的电脑上搭建一个新项目是很快很容易的。 :marked Make sure you have [node and npm installed](#install-prerequisites "What if you don't have node and npm?"). Then ... - 确定你已经安装了 [!{_prereq_cn}](#install-prerequisites "如果你没有 !{_prereq_cn}?"),然后: + 确定你已经安装了 [node和npm](#install-prerequisites "如果你没有node和npm?"),然后: 1. Create a project folder (you can call it `quickstart` and rename it later). @@ -36,11 +36,11 @@ a#develop-locally 1. Install [npm](#install-prerequisites "What if you don't have node and npm?") packages. - 安装 [!{_npm}](#install-prerequisites "如果你没有 !{_prereq} ?") 包。 + 安装 [npm](#install-prerequisites "如果你没有 node和npm ?") 包。 1. Run `npm start` to launch the sample application. - 运行`!{_npm} !{_start}`来启动例子应用。 + 运行`npm start`来启动例子应用。 a#clone :marked @@ -71,7 +71,7 @@ a#download Download the QuickStart seed and unzip it into your project folder. Then perform the remaining steps with these terminal commands. - 下载《快速起步》种子 + 下载《快速起步》种子 并解压到你的项目目录中。然后执行下面的命令完成剩余步骤。 code-example(language="sh" class="code-shell"). diff --git a/public/docs/ts/latest/tutorial/toh-pt5.jade b/public/docs/ts/latest/tutorial/toh-pt5.jade index 42f284bf72..d087cc93cf 100644 --- a/public/docs/ts/latest/tutorial/toh-pt5.jade +++ b/public/docs/ts/latest/tutorial/toh-pt5.jade @@ -635,7 +635,7 @@ a#configure-routes * Inject the `HeroService` in the constructor and hold it in a private `heroService` field. - 在构造函数中注入`HeroService`,并且把它保存在一个私有的`!{_priv}heroService`字段中。 + 在构造函数中注入`HeroService`,并且把它保存在一个私有的`heroService`字段中。 * Call the service to get heroes inside the Angular `ngOnInit()` lifecycle hook. @@ -797,7 +797,7 @@ code-example(format="nocode"). Inject the `ActivatedRoute`, `HeroService`, and `Location` services into the constructor, saving their values in private fields: - 然后注入`!{_ActivatedRoute}`和`HeroService`服务到构造函数中,将它们的值保存到私有变量中: + 然后注入`ActivatedRoute`和`HeroService`服务到构造函数中,将它们的值保存到私有变量中: +makeExample('toh-5/ts/src/app/hero-detail.component.ts', 'ctor', 'src/app/hero-detail.component.ts (constructor)') @@ -899,8 +899,8 @@ code-example(format="nocode"). Read more on the [CanDeactivate](../api/router/index/CanDeactivate-interface.html) page. 回退太多步会跑出我们的应用。 - 在演示程序中,这算不上问题。但在真实的应用中,我们需要对此进行防范。 - 也许你该用[!{_CanDeactivateGuard}](../api/!{_CanDeactivateGuardUri}.html).。 + 在真实的应用中,我们需要使用CanDeactivate守卫对此进行防范。 + 要了解更多,参见[CanDeactivate](../api/router/index/CanDeactivate-interface.html)。 :marked You'll wire this method with an event binding to a *Back* button that you'll add to the component template. @@ -1304,7 +1304,7 @@ figure.image-display Also, in `hero-detail.component.ts`, remove the `hero` property `@Input` decorator and its import. - 在`!{_appDir}`目录下添加hero-detail.component.css文件, + 在`app`目录下添加hero-detail.component.css文件, 并且在`styleUrls`数组中引用它 —— 就像之前在`DashboardComponent`中做过的那样。 同时删除`hero``@Input`装饰器属性和它的导入语句。 @@ -1332,7 +1332,7 @@ figure.image-display Add an app.component.css file to the `app` folder with the following content. - 在`!{_appDir}`目录下添加一个app.component.css文件,内容如下: + 在`app`目录下添加一个app.component.css文件,内容如下: +makeExample('toh-5/ts/src/app/app.component.css', '', 'src/app/app.component.css (navigation styles)') @@ -1389,7 +1389,7 @@ figure.image-display Also edit index.html to refer to this stylesheet. 如果在根目录下没有一个名叫`styles.css`的文件,就添加它。 - 确保它包含[这里给出的主样式](!{styles_css})。 + 确保它包含[这里给出的主样式](https://raw.githubusercontent.com/angular/angular.io/master/public/docs/_examples/_boilerplate/src/styles.css)。 并编辑`index.html`来引用这个样式表。 +makeExample('toh-5/ts/src/index.html', 'css', 'src/index.html (link ref)') diff --git a/public/docs/ts/latest/tutorial/toh-pt6.jade b/public/docs/ts/latest/tutorial/toh-pt6.jade index edf9a97155..1cfdb3f33b 100644 --- a/public/docs/ts/latest/tutorial/toh-pt6.jade +++ b/public/docs/ts/latest/tutorial/toh-pt6.jade @@ -97,7 +97,7 @@ h1 提供 HTTP 服务 :marked Notice that you also supply `HttpModule` as part of the *imports* array in root NgModule `AppModule`. - 注意,现在`!{_HttpModule}`已经是根模块`AppModule`的`imports`数组的一部分了。 + 注意,现在`HttpModule`已经是根模块`AppModule`的`imports`数组的一部分了。 .l-main-section :marked @@ -397,7 +397,7 @@ h1 提供 HTTP 服务 calling `JSON.stringify`. The body content type (`application/json`) is identified in the request header. - 我们通过一个编码在 URL 中的英雄 id 来告诉服务器应该更新哪个英雄。put 的 body 是该英雄的 JSON 字符串,它是通过调用`!{_JSON_stringify}`得到的。 + 我们通过一个编码在 URL 中的英雄 id 来告诉服务器应该更新哪个英雄。put 的 body 是该英雄的 JSON 字符串,它是通过调用`JSON.stringify`得到的。 并且在请求头中标记出的 body 的内容类型(`application/json`)。 Refresh the browser, change a hero name, save your change,