C# 如何从后端返回对象的响应中获取angular2中的数据?
我有返回行(即记录总数)的RESTAPI 和客户端(即对象列表)。我想订阅这个回复C# 如何从后端返回对象的响应中获取angular2中的数据?,c#,angular,C#,Angular,我有返回行(即记录总数)的RESTAPI 和客户端(即对象列表)。我想订阅这个回复 return Ok(new {rows=count,clients=list}); 如果响应为returnok(clients}); 我可以像下面这样做 角度2: private clients: Client[]; this.clientService.read().subscribe( clients=> this.clients=clients, 如何读取响应是否为Angular2中
return Ok(new {rows=count,clients=list});
如果响应为returnok(clients});
我可以像下面这样做
角度2:
private clients: Client[];
this.clientService.read().subscribe(
clients=> this.clients=clients,
如何读取响应是否为Angular2中的对象。
我想了解如何在subscribe方法中访问具有多个参数的对象
this.clientService.read().subscribe( resp =>
this.clients = resp.json().clients;
}
API中的客户端必须具有与客户端类相同的格式。首先,我不知道ClientService的功能。我建议你用新的。一种可能的实施方式是:
interface Client {
name: string;
etc...
}
interface ClientList {
rows: number;
clients: Client[];
}
@Injectable()
export class ClientService {
constructor(private http: HttpClient) { }
read(): Observable<ClientList> {
return this.http.get<ClientList>('/api/clients');
}
}
在html组件中,您可以使用客户端。要打印客户端的调试JSON表示形式,请执行以下操作:
{{ clients | json }}
我想这会泄露你的记忆,因为你订阅了,而且从不退订。
更好的方法是让angular使用来处理订阅和取消订阅
您的组件将具有如下可观察属性:
export class SomeComponent implements OnInit {
clients$: Observable<Client[]>;
constructor(private clientService: ClientService ) {}
ngOnInit() {
this.clients$ = this.clientService.read().map(clientList => clientList.clients);
}
}
导出类SomeComponent实现OnInit{
客户美元:可观察;
构造函数(私有clientService:clientService){}
恩戈尼尼特(){
this.clients$=this.clientService.read().map(clientList=>clientList.clients);
}
}
注:
名称clients$
以$
结尾-这是一种惯例,表示它是可观察的,并且是许多人在使用可观察时所做的事情
调用map()
将获取rows和clients属性的RID,这样您就只有数组了,因为这似乎是您想要做的
然后,在模板中,可以使用以下内容:
{{clients$| async | json}}
|async
部分将负责订阅您的可观察内容,并在组件被销毁时取消订阅。它还可以在发生某些事情时自动检查检测,这意味着您可以使用
这个答案中有很多更高级的主题,所以我建议你用谷歌搜索/阅读我发布的链接。如果你的问题是“如何在JavaScript中访问对象属性?”,我强烈建议你学习你尝试使用的工具的基本知识。如果没有,请澄清问题所在;给出一个。您还应该添加
this.clientService.read()
方法的实现。我想了解如何在订阅方法中访问具有多个参数的对象。如果您的API不返回JSON,请尝试此操作。clients=resp.clients;谢谢,这很有帮助
export class SomeComponent implements OnInit {
clients$: Observable<Client[]>;
constructor(private clientService: ClientService ) {}
ngOnInit() {
this.clients$ = this.clientService.read().map(clientList => clientList.clients);
}
}