【问题标题】:How to share same data among two same component called twice on the same html template如何在同一个html模板上调用两次的两个相同组件之间共享相同的数据
【发布时间】:2018-07-11 01:26:36
【问题描述】:

我创建了一个在表格上方和下方使用的分页组件。

问题是他们为每个调用创建不同的内存引用。

因此创建了一个自相矛盾的观点,如下所示:-

表格上方

下表

我们可以看到 html 上的数据相同,8 数字在两者上都显示为活动状态,但两个组件持有的数组包含不同的数据。
如何镜像这两个组件并确保它们共享相同的数据?
任何帮助都会非常感谢!

【问题讨论】:

  • 你尝试了什么?这是怎么建成的?
  • @joshvito 我试图搜索解决方案,但没有找到,显然问题是关于它是如何构建的!
  • 我不介意大家对我的问题投反对票,除非我继续分享和收集有关新问题的知识!

标签: node.js angular components


【解决方案1】:

如果您将数据移动到服务,则组件的两个实例可以共享同一个服务实例,因此共享相同的数据。

这对你有用吗?

这是我拥有的一个示例服务,它在多个组件之间共享这两个值:

服务

import { Injectable } from '@angular/core';

@Injectable()
export class ProductParameterService {
  showImage: boolean;
  filterBy: string;

  constructor() { }

}

使用服务的类然后获取属性并将其设置到服务中。

使用服务的类

get showImage(): boolean {
    return this.productParameterService.showImage;
}
set showImage(value: boolean) {
    this.productParameterService.showImage = value;
}

【讨论】:

  • ^同意这个。
  • 这将如何创建两个组件之间的通信?
  • 如果用户更改了值,则分页组件的任何一个实例都可以将值设置到服务中。由于在上面的示例中,showImage 和 filterBy 属性绑定在 UI 中,因此更改检测将在值更改并且重新评估它们的绑定时自动通知组件...导致调用 getter ...从服务中获取共享值。
  • 我有一个 plunker 在这里演示它:plnkr.co/edit/KT4JLmpcwGBM2xdZQeI9?p=preview 这个 plunker 是两个路由组件,但两个“子”组件的概念是相同的。
  • 点赞!感谢您花时间澄清事情,您在 plunker 中的最后一件事是您在 a 和 b 类组件中创建了 get 和 set 方法,或者它们应该在数据服务中?
猜你喜欢
  • 1970-01-01
  • 2019-10-08
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 2018-01-17
  • 1970-01-01
  • 2021-01-07
  • 2020-06-06
相关资源
最近更新 更多