angular 2 rc4从Http observable获取数据后创建变量

angular 2 rc4从Http observable获取数据后创建变量,angular,angular2-http,Angular,Angular2 Http,我对angular2有点陌生,我希望你能帮我我很确定这一定很简单,但这是我做的一个服务,可以处理http调用,但需要在数据加载后应用一些过滤器,而无需再次向api服务器询问新参数基本上我想让angular2处理这部分 更新** 服务 httpHandler(类型,模型){var token=this.LoginService.JwtDecoded(); var authHeader=新标题(); authHeader.append('Authorization','Bearer'+token);

我对angular2有点陌生,我希望你能帮我我很确定这一定很简单,但这是我做的一个服务,可以处理http调用,但需要在数据加载后应用一些过滤器,而无需再次向api服务器询问新参数基本上我想让angular2处理这部分

更新**

服务

httpHandler(类型,模型){var token=this.LoginService.JwtDecoded(); var authHeader=新标题(); authHeader.append('Authorization','Bearer'+token);

组成部分

this.Request.httpHandler('get','receiver/')
.subscribe(
    data => this.data = data, <-- from here
    err => this.error = 'there is a mistake!',
    () => console.log(this.data) <-- this one is outputing just what i want
  );
console.log(data); <-- i wanna output the same result in here
this.Request.httpHandler('get','receiver/'))
.订阅(
data=>this.data=data,this.error='有错误!',

()=>console.log(this.data)创建一个服务来获取数据

//xyz.service.ts
从“@angular/core”导入{Injectable};
从'@angular/Http'导入{Http,Response};
从“rxjs/Observable”导入{Observable};
导入'rxjs/add/operator/map';
@可注射()
导出类数据服务{
私有url=`receiver/`;
构造函数(专用http:http){
}
getData():可观察{
返回this.http.get(this.url)
.map((res:Response)=>res.json());
}
}
现在在组件中使用该服务

//xyz.component.ts
从“@angular/core”导入{Component,OnInit};
从“/xyz.service”导入{DataService};
从'@angular/HTTP'导入{HTTP_PROVIDERS};
@组成部分({
选择器:“应用程序主页内容”,
templateUrl:'xyz.component.html',
样式URL:['xyz.component.scss'],
提供者:[数据服务,HTTP\U提供者]
})
导出类HomeContentComponent实现OnInit{
私有数据:对象;
构造函数(专用数据服务:数据服务){
}
恩戈尼尼特(){
这是._dataService.getData().subscribe(数据=>{
这个数据=数据;
});
}
}

现在数据将在
中可用。数据
创建一个服务来获取数据

//xyz.service.ts
从“@angular/core”导入{Injectable};
从'@angular/Http'导入{Http,Response};
从“rxjs/Observable”导入{Observable};
导入'rxjs/add/operator/map';
@可注射()
导出类数据服务{
私有url=`receiver/`;
构造函数(专用http:http){
}
getData():可观察{
返回this.http.get(this.url)
.map((res:Response)=>res.json());
}
}
现在在组件中使用该服务

//xyz.component.ts
从“@angular/core”导入{Component,OnInit};
从“/xyz.service”导入{DataService};
从'@angular/HTTP'导入{HTTP_PROVIDERS};
@组成部分({
选择器:“应用程序主页内容”,
templateUrl:'xyz.component.html',
样式URL:['xyz.component.scss'],
提供者:[数据服务,HTTP\U提供者]
})
导出类HomeContentComponent实现OnInit{
私有数据:对象;
构造函数(专用数据服务:数据服务){
}
恩戈尼尼特(){
这是._dataService.getData().subscribe(数据=>{
这个数据=数据;
});
}
}

现在,数据将在
中提供。数据

为了有一个最小的、完整的和可验证的示例,您应该真正详细说明您当前的问题是什么。它现在做了什么,为什么错了?为了有一个最小的、完整的和可验证的示例,您应该真正详细说明您当前的问题是什么。您需要做什么现在可以了,为什么错了呢?谢谢ritz,我试着按照你说的做了,但我没法让它工作,奇怪的是我可以在订阅内部或html格式的数据中输出。name,但我不能在同一个函数中输出订阅外部。你知道吗?那是因为它是一个异步函数。如果你想用da做任何事情的话ta,您必须在subscribe内部执行此操作。它可以在HTML中访问,因为angular在检测到
此。数据
已更改时会自动更新视图。我希望您从subscribe内部调用函数,并对
此。数据
内部执行任何您想执行的操作,因为它将可用。谢谢ritz,我尝试了照你说的做,我无法让它工作,奇怪的是,我可以在内部订阅或类似html的数据中输出。name,但我不能在同一个函数中输出外部订阅。你知道吗?那是因为它是一个异步函数。如果你想对数据做任何事情,你必须在内部订阅。它的访问sible在HTML中是可用的,因为angular在检测到
此.data
已更改时会自动更新视图。我希望您从内部调用函数subscribe,并对其内部的
此.data
执行任何您想执行的操作,因为它将可用。
this.Request.httpHandler('get','receiver/')
.subscribe(
    data => this.data = data, <-- from here
    err => this.error = 'there is a mistake!',
    () => console.log(this.data) <-- this one is outputing just what i want
  );
console.log(data); <-- i wanna output the same result in here