学习-angular 7入门

1、安装脚手架:npm install -g @angular/cli

安装之后,输入命令 ng v:
Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.13.3
@angular-devkit/core         7.3.3
@angular-devkit/schematics   7.3.3
@schematics/angular          7.3.3
@schematics/update           0.13.3
rxjs                         6.3.3
typescript                   3.2.4

2、创建angular项目,命令格式:ng new 项目名称
选择是否需要路由,以及css等.
可以使用ng new 项目名称 --skip-install,会跳过安装项目依赖的过程

3、启动项目:ng serve --open

4、创建组件:ng g component components/组件名称
表示在components文件下创建一个组件

5、声名属性

  /*
    修饰符---合java基本一样
    public 默认、protected、private
  */
  public title = "这是一个title属性,lalalaaaa";

  mas = "这是一条数据msg";//默认public

  username:string = "张三";//声名属性类型

  student:any = "学生";//任意类型

  userinfo:any = {//对象
    username:"李四",
    age:18,
    sex:"男"
  }
  //集合
  list:any[] = ["111", "222", "333"];
  items:Array<number> = [111, 222, 333]

6、标签属性绑定值

//使用[ ]
<div [title]="title">学生</div>

7、模板中绑定html

content= "<h3>这是一个html标签---h3</h3>";

<div >{{content}}</div>//原样输出
<div [innerHTML]="content"></div>//会解析html在输出

8、条件判断

<div *ngIf="flag == true">
  <img src="assets/images/t1.jpg" alt="" width="100" height="80">
</div>

<li *ngFor="let item of numlist; let key=index;">
      <span [ngSwitch] = "key">
        <p *ngSwitchCase = 0 > {{key}}--{{item}} </p>
        <p *ngSwitchCase = 1 > {{key}}--{{item}} </p>
        <p *ngSwitchDefault> {{key}}--{{item}} </p>
      </span>
</li>

9、click点击事件, keydown/keyup键盘事件

<button (click)="click()">点击</button>

click() {
    alert("点击了");
  }

<button (keydown)="keydown($event)">点击</button>

keydown(e) {
    if(e.keyCode = 13){
       console.log("敲击了键盘回车键")
    }
  }

10、数据的双向绑定, 需要导入FormsModule

<input type="text" [(ngModel)]="val">
<p>输入的内容:{{val}}</p>

11、服务创建:ng g service 目录/服务名称;
如需使用该服务还需要在根模块中引入并配置,在具体的模块中使用该服务也需要引入。

//引入服务
import {RequestService} from '../../services/request.service';
//声名服务
constructor(public request:RequestService) { }
//使用服务
let data = this.request.getData();

12、回调函数、promise、以及rejs获取异步方法里面的数据

回调:
getCallBack(cb){
    setTimeout(() => {
      var username = "张三";
      //return username; 外部无法接收
      cb(username);
    }, 3000);
  }

promise:
  getPromiseData (){
    return new Promise((resolve,reject) => {
      setTimeout(() => {
        var username = "李四";
        resolve(username);
      }, 3000);
    });
  }

Rxjs:
getRxjsData (){
    return new Observable(observable => {
      setTimeout(() => {
        var username = "王五";
        observable.next(username);
      }, 3000);
    });
  }

调用:
this.request.getCallBack(callBackData => {
      console.log(callBackData);
});

this.request.getPromiseData().then(promiseData => {
      console.log(promiseData);
});

this.request.getRxjsData().subscribe(rxjsDate => {
      console.log(rxjsDate);
})

13、angular中get和post请求以及jsonp请求

getData(){
    let api = 'http://a.itying.com/api/productlist'
    this.http.get(api).subscribe((response:any) => {
      console.log(response);
      this.list = response.result;
    });
}

postData() {
    const httpOptions = {headers: new HttpHeaders({'Content-type': 'application/json'})}
    let api = 'http://127.0.0.1:3000/login';
    this.http.post(api, {'useename':'张三', 'age':20, 'sex':'man'}, httpOptions)
    .subscribe((res:any) => {
      console.log(res);
    });
}

//需要注入HttpClientJsonpModule
//使用jonp获取服务器数据,跨域的一种解决方案,服务器必须支持jsonp
jsonpData(){
    let api = 'http://a.itying.com/api/productlist'
    this.http.jsonp(api, 'callback').subscribe((response:any) => {
      console.log(response);
    });
}

14、路由的使用,app-routinh.module.ts中定义

//根模块需要导入路由
//路由模块需要导入已经创建的组件
const routes: Routes = [
  {path: 'home', component: HomeComponent},
  {path: 'news', component: NewsComponent},
  {path: 'todoList', component: TodoListComponent},
  //默认挂载的组件
  {path: '**', redirectTo: 'home'}
];

页面路由跳转1:
//跳转到newscontent页面,并且把index传过去
<li *ngFor="let item of list; let key = index">
    <a [routerLink]="[ '/newscontent' ]" [queryParams]="{index:key}" >{{key}}---{{item}}</a>
</li>
//跳转后对应的url:http://localhost:4200/newscontent?index=4

//获取路由传值
//如果要获取传递过去的参数,要引入ActivatedRoute
import { ActivatedRoute } from '@angular/router';
constructor(public activeRoute:ActivatedRoute) { }//声名ActivatedRoute
ngOnInit() {
    //获取路由传递过来的值
    this.activeRoute.queryParams.subscribe(data => {
      if(data.index){
        console.log('路由传值index : ' + data.index);
      }
    });
}
//页面路由跳转2:动态路由
//配置:
const routes: Routes = [
  {path: 'newscontent/:index', component: NewscontentComponent},
  //默认挂载的组件
  {path: '**', redirectTo: 'home'}
];

<ul>
    <li *ngFor="let item of list; let key = index">
      <a [routerLink]="[ '/newscontent/', key]">{{key}}---{{item}}</a>
    </li>
</ul>

//获取动态路由传值,同样需要引入ActivatedRoute
this.activeRoute.params.subscribe(date => {
      console.log(date);
});

//js动态路由跳转

原文地址:https://www.cnblogs.com/zd-blogs/p/12015888.html

时间: 2025-01-06 05:56:28

学习-angular 7入门的相关文章

Struts学习傻瓜式入门篇

或许有人觉得struts不容易学,似乎里面的一些概念让未接触过的人迷惑,MVC1.MVC2.模式……我写这篇文章是想让从来没有接触过struts的人,能有个简单的入门指引,当然,系统地学习struts是必要的,里面有很多让人心醉的东东,那是后话了. 该案例包括首页,用户登陆.网站向导页面.就这么简单,没有深奥的struts概念,主要靠动手,然后用心体会. WEB Server用tomcat4.到http://jakarta.apache.org下载struts1.1,把zip文 件释放到c:\s

现代C++学习笔记之一入门篇:智能指针(C++ 11)

原始指针:通过new建立的*指针 智能指针:通过智能指针关键字(unique_ptr, shared_ptr ,weak_ptr)建立的指针 在现代 C++ 编程中,标准库包含智能指针,该指针用于确保程序不存在内存和资源泄漏且是异常安全的. 在现代 C++ 中,原始指针仅用于范围有限的小代码块.循环或者性能至关重要且不会混淆所有权的 Helper 函数中. 1 void UseRawPointer() 2 { 3 // Using a raw pointer -- not recommended

RPC学习----Thrift快速入门和Java简单示例

一.什么是RPC? RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据.在OSI网络通信模型中,RPC跨越了传输层和应用层.RPC使得开发包括网络分布式多程序在内的应用程序更加容易. 二.什么是Thrift? thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和

刚刚学习完了Java入门,不知下一步

刚刚学习完了Java入门,学习了进阶,下一步不知道该往哪个方面继续学习了! 当初自学Java的时候就想着有一天可以编制出自己的软件,最好是可以引领生活,世界进步的(话有点大,没关系,还没有实现,谁知道呢)!刚才上网又自己查了一下,不知道<Java思想>怎么样,能不能看懂,是不是都是英文的??? 大神求助啊:迷茫中...

学习Android开发入门

学习Android开发入门第四章:类与对象(上)-掌握成员变量和局部变量的使用-掌握方法重载和重写-掌握构造方法的执行过程-掌握static关键字的使用-掌握多态 本章 链接:1)http://pan.baidu.com/s/1gdmm3Nt2)http://pan.baidu.com/s/1kTn0sCZ<5>第五章:类与对象(下)- 掌握包的概念及包语句- 掌握掌握各种访问权限- 掌握final和abstract关键字- 掌握接口的定义及使用- 使用Eclispe创建jar包 本章 链接:

3、Kafka学习分享|快速入门-V3.0

Kafka学习分享|快速入门 这个教程假定你刚开始是新鲜的,没有现存的Kafka或者Zookeeper 数据.由于Kafka控制控制脚本在Unix和Windows平台不同,在Windows平台使用bin\windows\ 代替 bin/,并且更改脚本扩展名为.bat. 第一步:下载编码 下载0.10.2.0版本并且解压它. 第二步:启动服务器 Kafka使用Zookeeper,因此如果你没有Zookeeper server,你需要先启动a ZooKeeper server.你可以使用Kafka的

springmvc学习笔记(5)-入门程序小结

springmvc学习笔记(5)-入门程序小结 springmvc学习笔记5-入门程序小结 入门程序配置小结 非注解的完整的配置文件 注解的完整配置文件 通过入门程序理解springmvc前端控制器.处理器映射器.处理器适配器.视图解析器用法.并附上入门程序的非注解的完整的配置文件,注解的完整配置文件. 入门程序配置小结 前端控制器配置: 第一种:*.action,访问以.action结尾 由DispatcherServlet进行解析 第二种:/,所以访问的地址都由DispatcherServl

Unity3d_学习笔记_入门

转自:http://blog.csdn.net/zlfxy/article/details/8722437 本文内容来自“编程教父”的视频课程. 1.Unity3d一个游戏引擎,可以用来开发很多游戏. 要利用Unity3d开发游戏,我们首先要下载一个Unity3d软件.下载后,下载一个破解补丁,这样就可以正常进行开发了. 2.Unity3d每次只能开启一个工程项目. (1)Unity3d中比较重要的一个对象就是摄像机了,摄像机就相当于我们人的眼睛,有了摄像机,运行程序后,才能够有视野. (2)U

最新 angular 5 入门与提高

一.概述 尽管被称为Angular5,实际上它只是这个诞生于2012年的前端框架的的第四个版本: 看起来差不多半年就发布一个新版本,不过实际上从重写的版本2开始,开发 接口与核心思想就稳定下来了,并基本保持着与前序版本的兼容性. 在5这个新的版本中,Angular团队将改进重点放在以下特性方面: 更易于构建渐进式Web应用 -- Progressive Web App 使用构建优化器剔除无用代码,以获得更小的应用.更快的网络加载时间 使物化设计组件兼容服务端渲染 PWA是Google提出的一个标