同一类型的多个组件,访问 Angular 中的共享资源 2
Multiple Components of the same type, accessing a shared Resource in Angular 2
我是 Angular 的新手,所以我只需要澄清一些与访问数据有关的事情,这些数据由组件的多个实例放置在服务中。
我的问题主要来自这样一个事实,即我在互联网上看到的所有 angular 示例或文档都是基本示例,传递字符串消息而不是数组段。
好的开始,App的基本架构是这样的:
(App-root)
(Child-1) | (Child-2) | ... | (Child-n)|
我有我的 AppComponent,在 HTML 模板中嵌套了一些 ChildComponents,它们是用 *ngFor 创建的。
我使用 *ngFor 是因为从应用程序开始我就不知道我必须创建的 Child 组件的确切数量。假设我将在 API 调用后从 JSON 文件中获取该号码。
来自 API 调用的 JSON 文件也有格式为 :
的特定信息
[
{info for ChildComp},
{info for ChildComp},
{info for ChildComp}
]
(如您所见,Child组件的数量是 JSON 数组的长度。)
我想到的解决方案,对于我的第一个问题,是从服务中的 JSON 获取数据,可以通过整个应用程序访问它,但是我 运行 进入下一题:
我如何将 JSON 文件数组中找到的 objects 分发到 Child 组件并跟踪 Child得到了哪些数据...
我尝试使用 parentComponent 中的 @input 方法,但问题是我不想传递整个数组,只传递其中的一部分,我会喜欢跟踪正在传递的内容,这样我就知道 Child 组件获得了它们的数据份额并且不会找到重复项(除非 {info for ChildComp} 是重复)。
对我来说,这似乎是一个并行资源访问问题,但问题是我还没有找到一种方法来分离生成的 Child 组件和 g运行t 它们的访问。
非常感谢和欢迎您对此问题的看法。
(我还没有发布代码,因为我还没有实现任何东西,我仍然停留在应用程序组件映射阶段)
@ViewChildren -> 可行,但当涉及 DOM 更改时,它会变得非常混乱,尤其是当您收到 "Expression has changed after it was checked" 错误时...
共享服务并发出主题值 -> 很干净的方式,但在索引对象的部分周围有点混乱。
*ngFor 和@Input 传递索引和其他数据 -> 目前最佳解决方案!!
使用解析器 -> 很好的方法,但前提是您准备好数据并且不希望按需提供。
我是 Angular 的新手,所以我只需要澄清一些与访问数据有关的事情,这些数据由组件的多个实例放置在服务中。
我的问题主要来自这样一个事实,即我在互联网上看到的所有 angular 示例或文档都是基本示例,传递字符串消息而不是数组段。
好的开始,App的基本架构是这样的:
(App-root)
(Child-1) | (Child-2) | ... | (Child-n)|
我有我的 AppComponent,在 HTML 模板中嵌套了一些 ChildComponents,它们是用 *ngFor 创建的。
我使用 *ngFor 是因为从应用程序开始我就不知道我必须创建的 Child 组件的确切数量。假设我将在 API 调用后从 JSON 文件中获取该号码。
来自 API 调用的 JSON 文件也有格式为 :
的特定信息[
{info for ChildComp},
{info for ChildComp},
{info for ChildComp}
]
(如您所见,Child组件的数量是 JSON 数组的长度。)
我想到的解决方案,对于我的第一个问题,是从服务中的 JSON 获取数据,可以通过整个应用程序访问它,但是我 运行 进入下一题:
我如何将 JSON 文件数组中找到的 objects 分发到 Child 组件并跟踪 Child得到了哪些数据...
我尝试使用 parentComponent 中的 @input 方法,但问题是我不想传递整个数组,只传递其中的一部分,我会喜欢跟踪正在传递的内容,这样我就知道 Child 组件获得了它们的数据份额并且不会找到重复项(除非 {info for ChildComp} 是重复)。
对我来说,这似乎是一个并行资源访问问题,但问题是我还没有找到一种方法来分离生成的 Child 组件和 g运行t 它们的访问。
非常感谢和欢迎您对此问题的看法。 (我还没有发布代码,因为我还没有实现任何东西,我仍然停留在应用程序组件映射阶段)
@ViewChildren -> 可行,但当涉及 DOM 更改时,它会变得非常混乱,尤其是当您收到 "Expression has changed after it was checked" 错误时...
共享服务并发出主题值 -> 很干净的方式,但在索引对象的部分周围有点混乱。
*ngFor 和@Input 传递索引和其他数据 -> 目前最佳解决方案!!
使用解析器 -> 很好的方法,但前提是您准备好数据并且不希望按需提供。