问题 Angular2 - http.post(...)。map不是函数[重复]


这个问题在这里已有答案:


5420
2018-01-25 08:47


起源

你能告诉我们关于你的HTTP调用代码的详细信息吗?谢谢! - Thierry Templier
@ThierryTemplier看到我的更新 - Angelo A
谢谢!你加了吗? HTTP_PROVIDERS 打电话给你 bootstrap 功能? - Thierry Templier
@ThierryTemplier我没有!它确实改变了一些东西,因为现在我得到另一个错误: ReferenceError: map is not defined 但我做了导入 rxjs/add/operator/map 在每个文件中(甚至在我的主文件中) - Angelo A
@ThierryTemplier上面是问题(我需要添加HTTP_PROVIDERS)。我有另一个错误导致上述错误。 (语法问题,我的坏)。你可以发布这个作为答案,我可以接受吗? - Angelo A


答案:


似乎Angular2 beta.1需要RxJS 5.0.0-beta.0。也许这是你的问题的原因。

如果我试试这个 package.json文件:

"dependencies": {
    "angular2": "2.0.0-beta.1",
    "systemjs": "0.19.6",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.1",
    "zone.js": "0.5.10"
},

我有错误,Angular2需要RxJS 5.0.0-beta.0。

编辑

你需要添加 HTTP_PROVIDERS 在你的第二个参数内 bootstrap 功能。

希望它能帮到你, 蒂埃里


2
2018-01-25 09:33



我试过beta.0,仍然没有运气,我得到同样的错误( ReferenceError: map is not defined ) - Angelo A
@AngeloA你试过: import 'rxjs/Rx'; (Rx 不 rx)? - Thierry Templier
是的我做了,(资本R) - Angelo A
那真的很奇怪。您是否有可能创建一个plunkr来重现这个?谢谢!这是一个描述工作HTTP示例的文件: plnkr.co/edit/XFmSGw4etdGvvPNkJxkI?p=preview。 - Thierry Templier
尽管添加了导入,但我遇到了同样的问题,@ Angelo你能解决这个问题吗?我正在使用“@ angular / common”:“2.0.0-rc.5”和“rxjs”:“5.0.0-beta.6” - john mitsch


对我来说 http.post(...).map() 按预期工作。 我确实需要导入'rxjs / Rx'

import {Component} from 'angular2/core';
import {Http} from 'angular2/http';
import 'rxjs/Rx';
@Component({
  selector: 'my-app',
  template: `
    <h1>{{title}}</h1>
    <p>Test result {{result | json}}</p>
    `
})
export class App implements OnInit{
 public title = 'my title';
 public result : String;

constructor(private _http : Http) {
  _http.post('http://jsonplaceholder.typicode.com/posts')
    .map(res => res.json())
    .subscribe(
      data => this.result = data,
      err => console.log('ERROR!!!'),
      () => console.log('Got response from API', this.result)
    );
  }
}

请参阅plunker示例: http://plnkr.co/edit/vise2zYxZUmr1kW65mNY?p=preview

希望这能帮助你找到你的问题


7
2018-01-25 14:37



这对我有用。我遇到了同样的问题 "@angular/core": "^4.0.0","rxjs": "^5.1.0" ... - Dev