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动态路由跳转

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

  1. Angular.js 入门(一)

    最近在学习angular.js,为此方便加深对angular.js前端框架的理解,因此写下这篇angular.js入门 首先介绍下什么是angular.js? AngularJS 是一个 JavaSc ...

  2. Angular 从入坑到挖坑 - Angular 使用入门

    一.Overview angular 入坑记录的笔记第一篇,完成开发环境的搭建,以及如何通过 angular cli 来创建第一个 angular 应用.入坑一个多星期,通过学习官方文档以及手摸手的按 ...

  3. 从零开始学习jQuery (一) 入门篇

    本系列文章导航 从零开始学习jQuery (一) 入门篇 一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些 ...

  4. 学习angular 指令构造器时遇到的小问题

    在学习angular时,使用模块来为应用添加自己的指令时,遇到了一个问题,演示的代码如下: <!DOCTYPE html> <html> <head> <me ...

  5. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  6. WebSocket学习笔记——无痛入门

    WebSocket学习笔记——无痛入门 标签: websocket 2014-04-09 22:05 4987人阅读 评论(1) 收藏 举报  分类: 物联网学习笔记(37)  版权声明:本文为博主原 ...

  7. 腾讯QQ会员技术团队:人人都可以做深度学习应用:入门篇(下)

    四.经典入门demo:识别手写数字(MNIST) 常规的编程入门有"Hello world"程序,而深度学习的入门程序则是MNIST,一个识别28*28像素的图片中的手写数字的程序 ...

  8. Xmpp学习之Android-smack入门指导

    Xmpp学习之Android-smack入门指导 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/69404 ...

  9. Java编程学习知识点分享 入门必看

    Java编程学习知识点分享 入门必看 阿尔法颜色组成(alpha color component):颜色组成用来描述颜色的透明度或不透明度.阿尔法组成越高,颜色越不透明. API:应用编程接口.针对软 ...

随机推荐

  1. NOIP 2011 提高组初赛错题简析

    Preface 好久没做初赛题了,据说今年的审核会更加严苛,作为一名去年未PY时只有\(92\)分的蒟蒻,我今年看来是\(90\)分都莫得了 然而今年也没怎么看重初赛,结果现在才来做,翻车到了\(84 ...

  2. vue项目搭建介绍02

    目录 vue项目搭建介绍02 python-pycharm设置: vue创建项目分类: vue-cli构建 自定义构建 基础的vue项目目录: vue项目搭建介绍02 python-pycharm设置 ...

  3. HTML连载21-序选择器上

    解释CSS3 中新增的选择器中最具有代表性的就是序选择器,大致可以分为两类: (1)同级别的第几个(2)同类型的第几个 先写一个公共代码 <body> <h1>优秀</h ...

  4. 【转】win7旗舰版英文版下载(64位|32位)|Windows7英文版ISO镜像

    Win7旗舰版SP1 64位ISO镜像下载地址:文件名:en_windows_7_enterprise_with_sp1_x64_dvd_u_677651.isoSHA1:A491F985DCCFB5 ...

  5. LeetCode 150:逆波兰表达式求值 Evaluate Reverse Polish Notation

    题目: 根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. Evaluate the value of an arithm ...

  6. Linux SELinux 介绍详解

    Linux SELinux 介绍详解 SElinux 简介 SElinux (Security Enhanced Linux)是由美国国家安全局(NSA)开发的.它已被植入到了Linux系统的内核当中 ...

  7. yii2.0的学习之旅(一)

    一. 通过composer安装yii2.0项目 *本文是根据您已经安装了composer (1)跳转到项目根目录 cd /xxxx/www (2)下载插件 composer global requir ...

  8. 如何查询正在运行的SQL Server agent job

    运行"msdb"系统数据库下的存储过程"dbo.sp_help_job",可以得知现在SQL Server中有多少个正在运行的agent job: USE [m ...

  9. 从VisualStudio资源文件看.NET资源处理

    c# 工程里面,经常会添加资源文件. 作用: 一处文本多个地方的UI使用,最好把文本抽成资源,多处调用使用一处资源. 多语言版本支持,一份代码支持多国语言.配置多国语言的资源文件,调用处引用资源. 例 ...

  10. VMware——安装CentOS

    VMware——安装CentOS 摘要:本文主要记录了在VMware虚拟机里安装CentOS的步骤. 下载操作系统 可以从下面的镜像地址去下载各种版本的CentOS,此次安装使用的版本是7.2: ht ...