我爱编程

Angular组件间通信,与服务器端通信

2018-02-08  本文已影响0人  JSL_FS

props down

//send
<datou [myvalue]="treasure"></datou>
//receive
import {input} from '@angular/core'

@input() myvalue="";

this.myvalue

events up

//①biding receive
//指定处理函数
rcvmsg(msg){
//绑定自定义事件的处理函数
(customevent)="rcvmsg($event)"
//②emit send
import {output,eventemitter} from '@angular/core'
@output() customevent = new eventemitter() 
this.customevent.emit(123)

服务的创建

import {injectable} from '@angular/core'

@injectable()
export class myservice{
    checkuserlogin(){
       return true
    }
}

服务的使用(服务是为了处理应用程序的应用逻辑,服务就是封装经常用到的方法和数据,方便组件去复用)

//1、指定providers
provders:[myservice]
//2、将服务进行实例化并调用
import {myservice} from '***'
constructor(private ms:myservice){}
this.ms.checkuserlogin();

网络请求的创建

import {injectable} from '@angular/core'
import {http,response} from '@angular/http'
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';

@injectable()
export class myhttpservice{

   constructor(private http:http){}

   sendrequest(myurl:string){
      //发起网络请求
      return this.http
          .get(myurl)
          .map((response:response)=>{
             return  response.json();
          })
   }
}

网络请求的使用

//以模块为例
import {myhttpservice} from '***'
@ngmodule({
  providers:[myhttpservice]
})

import {myhttpservice} from '***'
constructor(private ms:myhttpservice){}
this.ms.sendrequest('***')
.subscribe((result:any)=>{

})

若网络请求涉及session

//客户端
this.http.get(
myurl,
{withcredenetials:true}
)
//php服务端
header('access-control-allow-origin:http://localhost:3000');
header('access-control-allow-credentials:true');
上一篇下一篇

猜你喜欢

热点阅读