我的项目中有以下数据类型:
项目有很多用户。所以我编写了一个使用observables的项目服务来更新视图。到目前为止,当创建新项目或删除项目时,一切正常。
现在我想显示分配给特定项目的用户列表。应在添加新用户或删除一个用户时更新该列表。如何在Angular2和RxJS中完成?
class ProjectsService {
public projects$: Observable<Project[]>;
private projectsObserver: Observer<Project[]>;
private dataStore: {
projects: Project[]
};
addProject(p) {
// Some magic server calls
this.dataStore.projects.push(p);
this.projectsObserver.next(this.dataStore.projects);
}
addUserToProject(p, u) {
// Pseudo-Code and server calls
// -> I want to use observables here
p.users.push(u);
}
}
class Projects {
public users: Array<User>;
}
class User {
public string userId;
public string userName;
}
所以基本上我想嵌套两个observable。这是正确的方法吗?还是有其他最佳做法吗?
我希望你理解我的问题。
提前谢谢
答案 0 :(得分:0)
我认为你所做的是正确的。
你在哪里存放这些物品?您使用的是@ngrx/store
吗?
无论如何,您可能希望将users数组放在*ngFor
循环中,在这种情况下,如果您在读取observable时使用async
管道,您应该看到一切正常。
我有类似的问题,我的问题是我没有使用异步管道。
基本上我会写这样的东西:
<ul>
<li *ngFor="#user of (project | async)?.users">{{user.name}}</li>
</ul>
希望有所帮助