【问题标题】:Ionic3, Angular 2, rxjs object assign page variableIonic3,Angular 2,rxjs 对象分配页面变量
【发布时间】: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


【解决方案1】:

我会想象由于监听的事件触发而将更改反馈到 UI。我假设您正在谈论在 Firebase 控制台中更新数据,并且您的应用程序会立即在 Ionic 应用程序的屏幕上显示更改。订阅之美!可能使用 ReactiveFormsModule 吧?

【讨论】:

    猜你喜欢
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    • 1970-01-01
    相关资源
    最近更新 更多