在 Angular 2+ 中,ngDoCheck和ngAfterViewChecked似乎执行相同的功能。
ngDoCheck据说只要触发更改检测就会调用。现在,此更改检测将随着视图中的更改而触发。根据文档,ngAfterViewChecked每当视图更改时都会调用。
当一个生命周期钩子就足够了时,这里还需要两个生命周期钩子吗?
我的应用程序中关于服务的结构如下-
AppModule (AppComponent and HomeComponent)
| | |
Lazy1 Lazy2 Lazy3
Run Code Online (Sandbox Code Playgroud)
我的应用程序从 AppComponent 开始,它重定向到 HomeComponent,然后重定向到子模块之一。
所有子模块都是延迟加载的。现在我从 AppComponent 开始,从那里我被重定向到子模块之一。现在根据某些条件,我导航回 HomeComponent,然后再次重定向到子模块之一。
我的问题是,如果我再次使用不同的数据重新加载任何子模块,那么该子模块的服务也将具有相同的旧数据。本质上,由于儿童注射,这些服务并没有像它们应该的那样重新创建。
需要帮助来确定这里的问题。
附加信息 -
我在 AppModule 中有一些 App 级别的常用服务。然后每个子模块都有许多该模块使用的服务。应用级服务被注入到子模块服务中。
我对我创建的场景很困惑.我在Github上创建了一个存储库(让我们称之为A)并将代码推送到它.之后,我将该存储库克隆到我的本地(让我们称之为B),这样我本地的来源就是远程回购A.
现在我从我的本地B克隆来创建另一个本地实例C.现在我有远程起源的C作为repo B而C的上游是A.
A ? B ? C
Run Code Online (Sandbox Code Playgroud)
这类似于分叉,但在这里我在客户端而不是服务器端创建了克隆.
现在,如果我尝试使用从C到其原点B的推送:
git push origin
Run Code Online (Sandbox Code Playgroud)
然后我收到一个错误,指出我无法推送到非裸存储库.我知道推送到非裸存储库可能会导致本地远程不存在的提交丢失.
但是,这种情况与我将代码从B推送到A的情况类似吗?
我很困惑,如果B到A是可能的,那么为什么C到B.
为了合并到A,我们可以推送到上游:
git push upstream
Run Code Online (Sandbox Code Playgroud)