Angular笔记
来源:互联网 发布:淘宝怎么判定假冒商品 编辑:程序博客网 时间:2024/06/06 00:57
组件
结构
import {...} from ...;/*注解,告诉编译器加载内容*/@Component({ selector:'...',//标签名 template:'...',//组件模板,使用url加载或直接写;插值绑定:变量声明使用{{...}}: //或者:templateUrl: './hero-detail.component.html', //styleUrls: ['./hero-detail.component.css'], ... })export class AppComponent { name='...';属性}
根组件的声明
//通过 [root] = 组件变量,声明根组件<ion-nav [root]="rootPage" #content swipeBackEnabled="false"></ion-nav>
模板(template)
<input [(ngModel)]="hero.name" placeholder="name">//双向绑定数据
/*利用循环,显示数据,let .. of ..的语法*/<ul class="heroes"> <li *ngFor="let hero of heroes"> <span class="badge">{{hero.id}}</span> {{hero.name}} </li></ul>
/*事件绑定 (...事件)="函数"*/<li *ngFor="let hero of heroes" (click)="onSelect(hero)">
/*if语句 *ngIf="变量"*/<div *ngIf="selectedHero">...</div>
/*css样式;利用[class.selected]=true|false来控制移除和添加*/<li *ngFor="let hero of heroes" [class.selected]="hero === selectedHero" (click)="onSelect(hero)"> <span class="badge">{{hero.id}}</span> {{hero.name}}</li>
/*变量绑定,将数据传到子组件*/<hero-detail [hero]="selectedHero"></hero-detail>/*绑定到的目标属性必须是一个输入属性,否则Angular会拒绝绑定,并抛出一个错误。*/@Input() hero: Hero;
服务
获取数据,方便所有的组件共享数据
//初始化import { Injectable } from '@angular/core';@Injectable()export class HeroService {}
路由
//导入模块import { RouterModule } from '@angular/router';//加载@NgModule({imports: [ ... RouterModule.forRoot([ { path: 'heroes', component: HeroesComponent } ]) ], ...})//添加标签template: ` <h1>{{title}}</h1> <a routerLink="/heroes">Heroes</a> <router-outlet></router-outlet> `
数据绑定
<li>{{hero.name}}</li><hero-detail [hero]="selectedHero"></hero-detail><li (click)="selectHero(hero)"></li>
- {{hero.name}}插值表达式在 li 标签中显示组件的hero.name属性的值。
- [hero]属性绑定把父组件HeroListComponent的selectedHero的值传到子组件HeroDetailComponent的hero属性中。
(click) 事件绑定在用户点击英雄的名字时调用组件的selectHero方法。
双向数据绑定是重要的第四种绑定形式,它使用ngModel指令组合了属性绑定和事件绑定的功能。 下面是HeroDetailComponent模板的范例:
<input [(ngModel)]="hero.name">
键盘、鼠标事件
模板引用变量,使用 #name ,来标记当前标签为变量
@Component({ selector: 'little-tour', template: ` <input #newHero (keyup.enter)="addHero(newHero.value)" (blur)="addHero(newHero.value); newHero.value='' "> <button (click)="addHero(newHero.value)">Add</button> <ul><li *ngFor="let hero of heroes">{{hero}}</li></ul> `})export class LittleTourComponent { heroes = ['Windstorm', 'Bombasto', 'Magneta', 'Tornado']; addHero(newHero: string) { if (newHero) { this.heroes.push(newHero); } }}
通过 ngModel 跟踪修改状态与有效性验证
阅读全文
0 0
- angular 笔记
- angular笔记
- angular 笔记
- angular笔记
- Angular笔记
- angular 笔记
- angular学习笔记二
- Angular.js笔记
- Angular 学习笔记 1
- Angular 学习笔记 2
- Angular 学习笔记 3
- Angular 学习笔记 4
- Angular 学习笔记 5
- Angular 学习笔记 6
- Angular.js学习笔记
- angular学习笔记一
- [angular]学习笔记
- angular js学习笔记
- Jquery DataTables buttons扩展-导出excel
- caffe模型常用参数解释
- Markdown 语法说明 (简体中文版)
- rocketMQ简介及安装
- ajax向后台提交对象数组的解决方案
- Angular笔记
- python文件夹遍历,文件操作,获取文件修改创建时间
- CF Round #218 (Div. 2) && CF 371D Vessels【并查集】
- session与cookie的区别
- Linux: 系统配置 crond 和 crontab(有图有代码有真相!!!)
- Python 可迭代元素拆包
- mysql
- shell中的${},##和%%的使用
- SpringBoot 在CentOS7部署