gpt4 book ai didi

javascript - Angular 模块可以相互循环依赖吗?

转载 作者:行者123 更新时间:2023-11-29 16:47:04 25 4
gpt4 key购买 nike

我知道(如果我错了请纠正我)Angular 的 angular.module('a', ['b', 'c']) Bootstrap 是:

  1. 引导 bc
  2. 引导a

Bootstrap 是一个 3 步过程:

  1. 初始化
  2. 配置
  3. 运行

每个步骤首先发生在依赖项 b、c 上,然后发生在 a 上——然后移动到下一步。


我在上面的描述中哪里错了?作为这个plunker显示 a 可以依赖于 bb 依赖于 a (它实际上有效),那么它遵循我的描述是错误的,因为每个模块在引导自身之前引导其依赖项。

你能帮忙吗?

最佳答案

Angular 对模块使用延迟执行,这与您假设的方式不同。

每个模块都定义了一组依赖项,但没有任何内容被“执行”(就函数调用而言)。然后在定义所有模块后执行程序。

您的假设:A 依赖于 B,因此它首先执行 B。但是 B 依赖于 A,因此无法加载 A 或 B。

实际:模块A被创建,依赖B。模块B被创建,依赖A。在执行时,所有依赖都满足,因为A和B都存在。

对于配置和运行 block :

[...] the configuration blocks of the required modules execute before the configuration blocks of the requiring module. The same is true for the run blocks. Each module can only be loaded once, even if multiple other modules require it.

在实践中,这类似于堆栈(没有重复项)。在A和B的例子中,A先入栈,再入栈依赖B。由于B依赖A,A已经入栈,所以什么都不入栈。因此,配置 block 按顺序 B、A 运行。然后运行 block 按相同顺序运行。

参见 https://docs.angularjs.org/guide/module了解更多信息。

关于javascript - Angular 模块可以相互循环依赖吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40028692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com