3 回答
TA贡献1875条经验 获得超3个赞
关于您的最后一条评论,这是我想到的最简单的方法:创建一个具有一个属性并且该属性将保存请求的服务。
class Service {
_data;
get data() {
return this._data;
}
set data(value) {
this._data = value;
}
}
就如此容易。plnkr中的其他所有内容都将保持不变。我从服务中删除了请求,因为它会自动实例化(我们不这样做new Service...,而且我不知道通过构造函数传递参数的简单方法)。
所以,现在,我们有了Service,我们现在要做的是在组件中发出请求并将其分配给Service变量 data
class App {
constructor(http: Http, svc: Service) {
// Some dynamic id
let someDynamicId = 2;
// Use the dynamic id in the request
svc.data = http.get('http://someUrl/someId/'+someDynamicId).share();
// Subscribe to the result
svc.data.subscribe((result) => {
/* Do something with the result */
});
}
}
请记住,我们的Service实例对于每个组件都是相同的,因此,当我们为其分配值时data,它将反映在每个组件中。
- 3 回答
- 0 关注
- 1214 浏览
添加回答
举报