• Angular笔记一


    目录
        使用 Angular CLI 创建了初始的应用结构。
        学会了使用 Angular 组件来显示数据。
        使用双花括号插值表达式显示了应用标题
        使用 CLI 创建了第二个组件 HeroesComponent。
        把 HeroesComponent 添加到了壳组件 AppComponent 中,以便显示它。
        使用 UppercasePipe 来格式化英雄的名字。
        用 ngModel 指令实现了双向数据绑定。
        知道了 AppModule。
        把 FormsModule 导入了 AppModule,以便 Angular 能识别并应用 ngModel 指令。
        知道了把组件声明到 AppModule 是很重要的,并认识到 CLI 会自动帮你声明它。
        英雄指南应用在一个主从视图中显示了英雄列表。
        用户可以选择一个英雄,并查看该英雄的详情。
        使用 *ngFor 显示了一个列表。
        使用 *ngIf 来根据条件包含或排除了一段 HTML。
        可以用 class 绑定来切换 CSS 的样式类。

    angular
    1、安装node.js,npm
    2、安装angular cli,使用 Angular CLI 来创建项目、创建应用和库代码,并执行多种开发任务,比如测试、打包和发布
    3、使用npm安装 npm install -g @angular/cli
    4、创建工作区和初始应用 ng new my-app,ng new 会提示你要把哪些特性包含在初始的应用项目中。请按回车键接受默认值
        Angular CLI 会安装必要的 Angular npm 包及其它依赖
        将创建下列工作区和初始项目文件:
            一个新的工作区,根目录名叫 my-app
            一个初始的骨架应用项目,也叫 my-app(但位于 src 子目录下)
            一个端到端测试项目(位于 e2e 子目录下)
            相关的配置文件
    5、启用开发服务器
        cd my-app
        ng serve --open
    6、使用 Angular CLI 创建一个名为 heroes 的新组件 ng generate component heroes
            1、CLI 创建了一个新的文件夹 src/app/heroes/,并生成了 HeroesComponent 的三个文件
            import { Component, OnInit } from '@angular/core';
            //要从 Angular 核心库中导入 Component 符号,并为组件类加上 @Component 装饰器
            //@Component 是个装饰器函数,用于为该组件指定 Angular 所需的元数据
            @Component({
             selector: 'app-heroes', // 组件的选择器(css元素选择器)
             //CSS 元素选择器 app-heroes 用来在父组件的模板中匹配 HTML 元素的名称,以识别出该组件。
             templateUrl: './heroes.component.html', //组件模板文件的位置
             styleUrls: ['./heroes.component.css']  //组件私有CSS样式表文件的位置
            })
            export class HeroesComponent implements OnInit {

             constructor() { }
            
            //ngOnInit 是一个生命周期钩子,Angular 在创建完组件后很快就会调用 ngOnInit。这里是放置初始化逻辑的好地方
            //始终要 export 这个组件类,以便在其它地方(比如 AppModule)导入它
             ngOnInit() {
             }

            }
    7、使用 UppercasePipe 进行格式化
        <h2>{{hero.name | uppercase}} Details</h2> 将其字母转换为大写
        
    8、[(ngModel)] 是 Angular 的双向数据绑定语法,属于一个可选模块FormsModule,你必须自行添加此模块才能使用该指令
         <input [(ngModel)]="hero.name" placeholder="name">
    9、导入FormsModule
        Angular需要知道如何把应用程序的各个部分组合到一起,以及该应用需要哪些其它文件和库。这些信息被称为元数据(metadata)。
        有些元数据位于 @Component 装饰器中,你会把它加到组件类上。 另一些关键性的元数据位于 @NgModule 装饰器中。
        最重要的 @NgModule 装饰器位于顶级类 AppModule 上
            打开 AppModule (app.module.ts) 并从 @angular/forms 库中导入 FormsModule 符号
            然后把 FormsModule 添加到 @NgModule 元数据的 imports 数组中
    10、创建模拟(mock)的英雄数据
        在 src/app/ 文件夹中创建一个名叫 mock-heroes.ts 的文件。 定义一个包含十个英雄的常量数组 HEROES,并导出它
    11、使用 *ngFor 列出这些英雄,*ngFor 是一个 Angular 的复写器(repeater)指令。 它会为列表中的每项数据复写它的宿主元素
            <li *ngFor="let hero of heroes">
            <li> 就是 *ngFor 的宿主元素
            heroes 就是来自 HeroesComponent 类的列表。
            当依次遍历这个列表时,hero 会为每个迭代保存当前的英雄对象。
    12、主从结构,添加 click 事件绑定
        再往 <li> 元素上插入一句点击事件的绑定代码:<li *ngFor="let hero of heroes" (click)="onSelect(hero)">
        click 外面的圆括号会让 Angular 监听这个 <li> 元素的 click 事件。 当用户点击 <li> 时,Angular 就会执行表达式 onSelect(hero)
        onSelect() 是 HeroesComponent 上的一个方法,你很快就要写它。 Angular 会把所点击的 <li> 上的 hero 对象传给它,这个 hero 也就是前面在 *ngFor 表达式中定义的那个
    13、添加 click 事件处理器
        把该组件的 hero 属性改名为 selectedHero,但不要为它赋值。 因为应用刚刚启动时并没有所选英雄
        添加如下 onSelect() 方法,它会把模板中被点击的英雄赋值给组件的 selectedHero 属性
            selectedHero: Hero;
            onSelect(hero: Hero): void {
            this.selectedHero = hero;}
    14、使用 *ngIf 隐藏空白的详情 <div *ngIf="selectedHero">
    15、使用css给所选英雄添加样
            Angular 的 CSS 类绑定机制让根据条件添加或移除一个 CSS 类变得很容易。
            只要把 [class.some-css-class]="some-condition" 添加到你要施加样式的元素上就可以了
                [class.selected]="hero === selectedHero"
            如果当前行的英雄和 selectedHero 相同,Angular 就会添加 CSS 类 selected,否则就会移除它
                <li *ngFor="let hero of heroes"
                [class.selected]="hero === selectedHero"
                (click)="onSelect(hero)">
                <span class="badge">{{hero.id}}</span> {{hero.name}}
                </li>
    16、待续---
            
                
        
        
        
        
        
  • 相关阅读:
    并不对劲的网络流
    并不对劲的[noi2006]网络收费
    并不对劲的spoj1812
    48.孩子们的游戏(圆圈中最后剩下的数)
    47.扑克牌顺子
    46.翻转单词顺序
    45.左旋转字符串
    44.和为S的两个数字
    43.和为S的连续正数序列
    42.数组中只出现一次的数字
  • 原文地址:https://www.cnblogs.com/wapn/p/10547215.html
Copyright © 2020-2023  润新知