我有这样的要求:
import {Component, OnInit} from '@angular/core';
import { Http, Response } from '@angular/http';
import {Observable} from 'rxjs';
import 'rxjs/add/operator/map';
import {isNode} from 'angular2-universal';
@Component({
selector: 'app-todo',
templateUrl: './todo.component.html',
styleUrls: ['./todo.component.css']
})
export class TodoComponent implements OnInit {
constructor(private http: Http) {}
private todo: any;
ngOnInit() {
if(isNode) {
this.http
.get('http://api.pushsc.com/api/v1/code/show/589ceab40a58d602a0b99d10')
.map((response: Response) => response.json())
.subscribe(data => {
console.log(data);
this.todo = data;
})
error => {
console.log(error);
};
}
}
}
在控制台中,我得到了来自API的响应,这意味着来自服务器的http工作...但是poroblem在客户端上,即使我从http中删除isNode
内容也不应该呈现......应该是什么问题?
答案 0 :(得分:0)
您需要在客户端为运行代码安装并启用preboot https://github.com/angular/preboot。
答案 1 :(得分:-1)
来自此 link
的angular2-universal的源代码默认情况下,分配给isNode
的值为true,因此如果http调用不可用,则http调用将失败。