【发布时间】:2018-01-04 02:51:42
【问题描述】:
我正在做 Ionic3 项目。这是一个问题。 后端:我将 Rxjs 与 Firebase 一起使用,这对于实时数据来说非常简单而且很好。 前端代码在这里:
我希望我的数据保持一致性。所以我做了一个服务,它带来数据并像这样分配给每个页面变量。
[.ts 文件]
public dogModel = new dogModel();
constructor(
,public testService: TestService) {
this.dogModel = this.testService.dogModel;
}
[html 文件]
<div>{{dogModel.state}}</div>
而且效果非常好。当服务中的数据发生变化时,我根本不知道服务数据如何重新分配给页面变量。 还有一个, 如果我像这样更改我的代码,
this.dogModel.state = this.testService.dogModel.state;
我可以在服务中看到日志更改数据,但在页面中看不到任何更改。 有人知道吗?
我的 service.ts 的一部分
constructor(
public db: AngularFireDatabase
) {
db.object( this.firebaseURL + '/dogState/test1234')
.subscribe( (dogState) => {
Object.assign(this.dogModel, <dogModel>dogState);
console.log(this.dogModel);
});
【问题讨论】:
-
你的组件的构造函数运行时很可能没有返回数据。您可以使用主题来订阅服务中数据的更改。
-
@0mpurdy - 是的,我做到了。 [Service.ts] db.object( this.firebaseURL + '/mmumesState/test1234') .subscribe( (mmumesState) => { 将数据分配给对象 });但我希望我的代码干净,所以我只在服务中订阅了一次。我应该在每个要使用数据的页面中调用订阅函数吗?
-
您发布的代码中没有显示这里?你能把它包括进去吗?
-
感谢 cmets。我编辑了。我在 service.ts 中声明变量并将我的数据保存在本地
变量
标签: angular typescript rxjs ionic3