Augular2英雄指南教程
2017-01-14 16:46
211 查看
让表单输入支持双向数据绑定之前,我们得先导入
只要把它添加到
这样我们就引入了表单包,其中包含了
把
COPY CODE
我们来盘点一下已经构建完成的部分。我们的《英雄指南》使用双大括号插值表达式(单向数据绑定的一种形式)来显示应用的标题和
我们使用 ES2015 的模板字符串写了一个多行模板,使我们的模板更具可读性。
为了同时显示和修改英雄的名字,我们还使用了内置的
引号中赋值给
在模板中,我们可以引用这个变量来访问一位英雄的属性。
添加样式:
在
类
这里有很多种样式!我们可以像上面那样把它们内联在组件中,或者把样式移到单独的文件中, 这样能让编写组件变得更容易。我们会后面的章节中使用独立样式文件,现在我们先不管它。
当我们为一个组件指定样式时,它们的作用域将仅限于该组件。 上面的例子中,这些样式只会作用于
例如:
事件绑定详解COPY CODE
我们将把所选英雄的详细信息显示在模板中。目前,它仍然引用之前的
FormsModule模块。
只要把它添加到
NgModule装饰器的
imports数组中就可以了,该数组是应用中用到的外部模块列表。
这样我们就引入了表单包,其中包含了
ngModel
在app.module.ts
import{ FormsModule} from'@angular/forms';
@NgModule({
imports:[
BrowserModule,
FormsModule
把
<input>替换为下列 HTML
COPY CODE
<input [(ngModel)]="hero.name" placeholder="name">
我们来盘点一下已经构建完成的部分。我们的《英雄指南》使用双大括号插值表达式(单向数据绑定的一种形式)来显示应用的标题和
Hero对象的属性。
我们使用 ES2015 的模板字符串写了一个多行模板,使我们的模板更具可读性。
为了同时显示和修改英雄的名字,我们还使用了内置的
ngModel指令,往
<input>元素上添加了双向数据绑定。
ngModel指令将这些修改传播到每一个对
hero.name的其它绑定。
<li *ngFor="let hero of heroes">
ngFor的
*前缀表示
<li>及其子元素组成了一个主控模板。
ngFor指令在
AppComponent.heroes属性返回的
heroes数组上迭代,并输出此模板的实例。
引号中赋值给
ngFor的那段文本表示“从
heroes数组中取出每个英雄,存入一个局部的
hero变量,并让它在相应的模板实例中可用”。
hero前的
let关键字表示
hero是一个模板输入变量。
在模板中,我们可以引用这个变量来访问一位英雄的属性。
添加样式:
在
@Component装饰器的
styles属性设置CSS
类
这里有很多种样式!我们可以像上面那样把它们内联在组件中,或者把样式移到单独的文件中, 这样能让编写组件变得更容易。我们会后面的章节中使用独立样式文件,现在我们先不管它。
当我们为一个组件指定样式时,它们的作用域将仅限于该组件。 上面的例子中,这些样式只会作用于
AppComponent组件,而不会“泄露”到外部 HTML 中。
例如:
styles: [` //`是反引导语法 .selected { background-color: #CFD8DC !important; color: white; } .heroes { margin: 0 0 2em 0; list-style-type: none; padding: 0; width: 15em; }`] //反引号语法来书写多行字符串
主从结构:
点击事件
我们往<li>元素上插入一句 Angular 事件绑定代码,绑定到它的点击事件。
app.component.ts (template excerpt)
COPY CODE<li *ngFor="let hero of heroes" (click)="onSelect(hero)">
<span class="badge">{{hero.id}}</span> {{hero.name}}
</li>
事件绑定详解COPY CODE
(click)="onSelect(hero)"圆括号标识
<li>元素上的
click事件是绑定的目标。 等号右边的表达式调用
AppComponent的
onSelect()方法,并把模板输入变量
hero作为参数传进去。 它是我们前面在
ngFor中定义的那个
hero变量。在AppComponent中加入
selectedHero: Hero;我们决定在用户选取之前,不会默认选择任何英雄,所以,不用像
hero一样初始化
selectedHero变量。现在,添加一个
onSelect方法,用于将用户点击的英雄赋给
selectedHero属性。
app.component.ts (onSelect)
COPY CODEonSelect(hero: Hero): void {
this.selectedHero = hero;
}
我们将把所选英雄的详细信息显示在模板中。目前,它仍然引用之前的
hero属性。 我们这就修改模板,让它绑定到新的
selectedHero属性。
app.component.ts (template excerpt)
COPY CODE<h2>{{selectedHero.name}} details!</h2>
<div><label>id: </label>{{selectedHero.id}}</div>
<div>
<label>name: </label>
<input [(ngModel)]="selectedHero.name" placeholder="name"/>
</div>
命名约定
我们希望一眼就能看出哪些类是组件,哪些文件包含组件。你会注意到,在名叫app.component.ts的文件中有一个
AppComponent组件,在名叫
hero-detail.component.ts的文件中有一个
HeroDetailComponent组件。我们的所有组件名都以
Component结尾。所有组件的文件名都以
.component结尾。这里我们使用小写中线命名法 (也叫烤串命名法)拼写文件名, 所以不用担心它在服务器或者版本控制系统中出现大小写问题。
app.module.ts
app.module.ts
相关文章推荐
- angular2-英雄指南教程(详讲小白上手会遇到的坑)
- angular2-英雄指南教程http请求
- linux入门教程 第3章 rh使用指南
- DirectX5.0最新游戏编程指南 DirectDraw教程篇 五、DirectDraw中其它的DirectDraw范例
- DirectX5.0最新游戏编程指南 DirectDraw教程篇五
- jQuery中文入门指南,翻译加实例,jQuery的起点教程
- 代理服务器新手应用指南和使用教程
- jQuery中文入门指南,翻译加实例,jQuery的起点教程
- 【翻译】最新版CodeSmith3.2(.net2.0)教程之一:CodeSmith介绍及指南
- 智能客户端体系结构与设计指南 经典教程(中文)
- jQuery中文入门指南,翻译加实例,jQuery的起点教程(一)
- DirectX5.0最新游戏编程指南 DirectDraw教程篇 三、创建动画
- 经典教程翻译系列: Mach-II应用程序配置指南
- JAVA视频教程(一) - 开发环境安装指南
- DirectX5.0最新游戏编程指南 DirectDraw教程篇四
- 经典教程翻译系列: Mach-II新手指南(上)
- DirectX5.0最新游戏编程指南 DirectDraw教程篇 四、使用覆盖表面
- Cookies应用指南,详细代码及教程
- linux入门教程 第2章 安装指南
- RedHat环境下socks5代理的配置指南教程