打字稿找不到名字' map'

时间:2017-05-20 03:46:26

标签: angular typescript ionic2

我是Angularjs的新手。我需要将post请求发送到我的localhost服务器。但我收到错误[ts]无法找到姓名' map'并且找不到姓名'订阅'。 我希望能理解我的错误。提前谢谢。

login.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { Http ,Headers ,HttpModule} from '@angular/http';
import 'rxjs/add/operator/map';

/**
 * Generated class for the Login page.
 *
 * See http://ionicframework.com/docs/components/#navigation for more info
 * on Ionic pages and navigation.
 */
@IonicPage()
@Component({
  selector: 'page-login',
  templateUrl: 'login.html',
})
export class Login {

  constructor(public navCtrl: NavController, public navParams: NavParams,public http:Http) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad Login');
  }
  ionViewidData(){
    let headers= new Headers();
    headers.append('Content-Type','application/json');

    let body = {
      device:"Mobile",
      id:"10077",
      password:"leechan2"
    };
    console.log(body);
    this.http.post('http://0.0.0.0:2800/login',JSON.stringify(body),{headers:headers});
        .map(res => res.json())
        .subscribe(data =>{
          console.log(data);
        });

}

}

3 个答案:

答案 0 :(得分:2)

您在第;行有一个意外的this.http.post

this.http.post('http://0.0.0.0:2800/login',JSON.stringify(body),{headers:headers})           //    <--------- remove ; here
    .map(res => res.json())
    .subscribe(data =>{
      console.log(data);
    });

答案 1 :(得分:2)

**删除;在this.http.post之后并尝试在构造函数**中使用私有http:Http

this.http.post('http://0.0.0.0:2800/login',JSON.stringify(body),{headers:headers})
    .map(res => res.json())
    .subscribe(data =>{
      console.log(data);
    });

答案 2 :(得分:0)

语法错误有时会产生奇怪的错误,这些错误可能不会直接指向您的根本原因。你用';'完成了'post'方法所以你的'map'方法不会在任何对象上调用。 “。”左侧没有任何内容。导致无法找到'map'方法。除掉 ';'在'headers}之后;'。

像这样:  this.http.post('http://0.0.0.0:2800/login',JSON.stringify(body),{headers:headers}).map(res => res.json()).subscribe(data =>{ console.log(data); });