如果我通过单击按钮触发onDo(),我有一个组件显示的值为将订阅值分配给变量:Angular2
{{getData}}
。 onDo()正在向服务器发起GET请求。服务器回馈的反应,我订阅了。我将订阅值分配给this.getData,并能够使用{{getData}}在我的组件模板中成功显示它。 我还可以在控制台内的.subscribe()中打印数据。 但我想打印的.subscribe()之外,它不显示任何内容。
我真正想要做的是:分配的getData的价值MYVAR。 这里是我的代码:
@Component({
template: `
...
<p>{{getData}}</p>
...
`,
providers: [MyService]
})
export class MyComponent{
getData: string;
MyVar: string;
constructor(private _myService: MyService, private _router: Router){}
onDo(){
this._myService.getSomething()
.subscribe(
data => this.getData = JSON.stringify(data),
error => this._router.navigate(['error']),
() => console.log('Get data inside subscribe: '+ this.getData)
);
console.log('Get data outside subscribe'+this.getData);
this.MyVar = this.getData;
}
}
的可能的复制[如何返回从一个异步调用的响应?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-呼叫) – echonax