angular新手入门(仅本人理解)

前言:  最近公司开发项目 准备要用到angular2 所以下面是最近本人这几天的心得 记录一下

-----       搭建angular-cli ----
   第一步安装node.js 
   第二步安装angular cli   npm install -g angular -cil 
   第三步在当前文件夹打开cmd     ng new 当前项目名字第四步 ng serve 
   第四步 开始运行 http://localhost:4200/ (默认是当前域名和端口)
-----       入口文件 ----- 

src/app/app.component.html  入口文件
--------   使用cli 创建文件  ------- 

ng generate component heroes默认创建三个文件  css html ts css 样式  html主体  ts 相当于js代码 
-------  实现双向数据绑定  ----------  

一, 
    <input [(ngModel)]="hero.name" placeholder="name"> 
   会有一个bug   Angular缺少 FormsModule 会报错   

       解决:      

        在跟模块app.module.ts 中 定义
                       import { FormsModule } from '@angular/forms';                    
                         在imports: [                    
                                    BrowserModule,                    
                                    AppRoutingModule,                    
                                    FormsModule    ,
              ],

二,
   使用自定义模板 # 号来进行操作 
   #自定义名字  (事件)=方法名(event)
            <input type="text" #able (keyup) = aaa($event)>
            <p>{{able.value}}</p>
-----------  angular 一些常用指令 ----
   第一:  *ngFor 来遍历数组
          <li *ngFor="let message of mailService.messages; index as i;">{{i}} - {{message}} </li>
                     渲染指令     数据        遍历的数组            索引    
   第二: *ngIf  控制元素的显示与隐藏   
                来同过true 和 fasle 来控制 
    
   第三:(click)=“可随意命名()”  点击事件


   第四: [class.selected]='hero === selectedHero'   动态的添加class 
                 class名字  保持同步 
    
   第五: #自定义名字  (事件)=方法名(event)    

-------------- angular 服务 储存数据   ------------------

       感觉这个有点难理解~~~~  加油!!

    ng generate service hero  先使用命令下载ts文件 
  @Injectable() 会绑定元数据 root 
  在 export class HeroService 里面存储数据 
     export class HeroService {
   
     constructor() { }
     getHeroes(): hero[] {
       return HEROES;
     }

   在别的组件中直接引入ts文件 就可调用了...

----------------- angular 中路由的配置 ------------------

   感觉和vue差不多吧
   他会有一个配置文件 专门来存放路由的配置的 app-routing.module.ts
   先引入所跳转的组件 import 吧 
   在const routes : Router=[] 写配置路由  例如:{path:"/Router",component:RouterDomeComponent},   
在页面使用 <router-outlet>来存放页面数据    routerLink="/Router" 来匹配路由

重定向路由:
      {path: '/', redirectTo: '/dashboard', pathMatch: 'full' } 

------------------   父子组件传值 -------------------
import { Component, OnInit, Input ,Output, EventEmitter } from '@angular/core'; 在子组件ts文件引入 模块 
  父给子组件传值  :
           1, 通过 [自定义名字]="要传递的数据 " 
           2, 在子组件中ts文件中 使用@Input来接收  @Input 上定义的自定义名字 = any(不懂看看ts基础哦) 在页面就可以直接使用了 

 子给父组件传值:
           1,和vue一样 都是通过事件来传递 先找到一个方法 
           2,通过@Ouput来操作的 在子组件的ts文件中
                 @Output()  自定义名字 = new EventEmitter();实例对象
           3,在方法中  this.自定义名字(和上面一样).emit(传递的数据)
           4,在(自定义方法)="getData($event) 
           5, getData(e){console.log(e) }  这就可以打印出来了 
                             
---------------------  angular的Http 发送ajax请求 --------------------
    
           只想说 ajax文档太难看懂了 引入一堆报错(发牢骚.....)
https://blog.csdn.net/xin_bao_long/article/details/82798328   这个不错大家可以看看
   get请求:
import { Http, URLSearchParams,RequestOptions } from '@angular/http'; // 发送请求有关的类

import { Observable } from "rxjs"; // 明确请求后的可观察对象是Rx的可观察对象,如未指明是Rx的可观察对象,会报错。

import 'rxjs/add/operator/toPromise'; // 引入toPromise操作符,否则会报错,toPromise方法未定义。

       get() : Promise<string> {
    let serverurl: string = "url地址";
    // 创建请求参数对象,所有请求参数被放在此对象中。
  
       let param = new URLSearchParams();
    param.append("param1","test"); // 向请求参数中放入参数及值
    // 创建请求设置对象,将请求参数作为其构造方法参数对象                      的"search"属性值。
    // 请注意,在这里我们并未明确请求头(Headers),Angular会根据请求方法(method)// 及请求参数的类型,自动确定请求头类型。
    
        let options = new RequestOptions({search:param});
    // 发起get请求。注意http属性必须由依赖注入而来。
 

         return this.http.get(serverurl, options)
    
        .toPromise()    // 将可观察对象转为承诺,接下来按照承诺的方式处理。
   
        .then(response => {
        let data = response.json();
        if (data.is_ok == 2) {
           
         let result:string = data.rs;
           
         onsole.log(result);
    return Promise.resolve(result);
}
  return Promise.reject("false");
    })
         .catch(error => {
  console.log(error);
        return Promise.reject("false"); 
    });
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值