问题标签 [angular-lifecycle-hooks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 是否可以再次运行 ngAfterViewInit?
我想重新调用我的 ngAfterViewInit,因为它负责改变我的 dom 的样式。因此,如果我的组件数据发生更改,我的组件会更新,但我的样式不会应用于新数据。在下面的代码中,我负责显示一些产品信息的组件订阅了可观察的路由器参数。因此,如果我更改路由参数,则信息会在不重新运行我的组件的情况下更改,但不会应用样式,因为不会再次启动组件,因此不会再次调用 afterViewInit。这是我的代码
那么,如果我获得新的产品数据集,如何重新调用我的 ngAfterViewInit 呢?
**重要点----
1- 我不能将我的 ngAfterViewInit 代码放入 params 订阅,因为该代码取决于动态内容。
2-我知道我可以在 ngAfterViewChecked 生命周期钩子中调用 ngAfterViewInit 方法,该方法工作得很好,但我认为我经常调用这些函数。
angular - 在步骤 1 中更改输入字段时重置垫步进器步骤 2 中的值
我正在为我的应用程序使用 Angular 材料步进器。每个步骤都有单独的组件。
父.html:
孩子-1
孩子-2
它的工作原理就像用户在步骤 1 中输入名称时,将从后端加载第二种形式的地址值。如果用户再次更改名称字段,则地址字段将被重置。我可以重置步进器,但它的设计就像步进器重置不应该发生我应该清除步骤 2 内的字段。有什么可能的方法来做到这一点。? 是否可以将子 1 组件中的此字段绑定到子 2 组件的任何生命周期挂钩。请指导我
javascript - I got ExpressionChangedAfterItHasBeenCheckedError from child compoenent (timerrenderer), Angular 7
I'm getting the ExpressionChangedAfterItHasBeenCheckedError error from my child component. I tried to add detectChanges() method inside the ngOnchanges but it didn't work. I'm new to angular. I also tried the other questions' solutions but didn't work for me.
angular - Angular:计数类实例,显示在页面上
大菜鸟,第一个问题。课程项目“测验应用程序”显示一个又一个问题,并在最后显示结果。我想通过计算结果页面上“正确”类的元素数量来添加正确答案的数量。如果需要更多信息或任何其他信息,请告诉我!
到目前为止尝试过:
-test1:“计数”它们并显示得很好,问题是它执行计数时有 0,因为它们还没有创建。
-test2:在使用生命周期钩子 ngAfterViewChecked() 创建它们后对它们进行计数。Console.log 显示正确的数字;但我不知道如何将其转移到模板中。在组件中声明一个变量,让生命周期钩子的函数更改变量,并将变量包含在模板中;但它只是不像 test1() 那样出现在页面上。
结果.component.html:
结果.component.ts:
angular - 在子组件Angular中注入从url获取的值
我正在尝试从要注入子组件的 Url 中注入一个值。我能够从 url 获取参数并使用属性更新我的 DOM,但是当我将相同的属性注入子组件时,它的行为方式不同。
这是我的父组件:
我可以看到 h2 标签发生了变化,但没有看到其他标签
这是我的子组件:
我已经尝试过的:
- 使用 router 属性作为字符串,然后使用该语法:
<h1><app-task-title taskId={{router}}></app-task-title></h1>
但结果是相同的。 - 使用在 DOM 中返回值的方法。
如果您对属性在 DOM 中的行为有任何解释,欢迎
angular - 为什么我们使用 - ngAfterContentInit 生命周期方法
我正在学习角度。有很多生命周期方法。例如 ngOnChanges 每次在子组件的输入属性中有新值时运行 - 这些值是按值传递的。
我不明白这个方法 - ngAfterContentInit。在角度文档中说:
https://angular.io/guide/lifecycle-hooks
在 Angular 将外部内容投射到组件的视图或指令所在的视图中后响应。
但这似乎不是很好的解释。有人可以告诉我为什么我们使用并更好地理解一个真实世界场景 - 用例
javascript - “在Angular首次显示数据绑定属性之后”是什么意思
我一直在关注关于ngOnInit
生命周期的 Angular 文档,直到它被说“在 Angular 首次显示数据绑定属性之后”真正感到困惑。顺便说一句,您可以在此处查看文档。我猜这个词display
在整个句子的上下文中的含义是,render
但它没有任何意义。
我在组件debugger
的方法中添加了一条语句,ngOnInit
以查看在调用该方法时将显示/呈现什么,但没有呈现任何内容,包括具有数据绑定属性的 DOM 元素,除了没有任何数据的元素 -绑定属性。
那么根据文档说“在Angular首次显示数据绑定属性之后”是什么意思?
angular - 重新加载页面时的 ngOnDestroy
我正在尝试理解和试验 Angular 生命周期钩子。
关于ngOnDestroy
,在官方文档中它说:
当指令、管道或服务被销毁时调用的生命周期钩子。用于实例销毁时需要进行的任何自定义清理。
ngOnDestroy
所以,当我重定向页面时,我可以触发事件。ngOnDestroy
奇怪的是,当我重新加载页面时,我无法触发。当我重新加载页面时,它不会破坏我的指令和服务吗?为什么ngOnDestroy
没有在页面重新加载时触发?
angular - elementRef的宽度改变时如何改变模板
我尝试在 ngInit 中加载一些数据并将 div 的宽度设置为等于接收到的数据。然后我尝试使用 ViewChild 和 ElementRef 在 ngAfterViewInit 中设置一些样式选项,但我的 elementRef 始终未定义。我该如何解决?
我的组件:
我的模板:
我知道 elementRef 可能由于 *ngIf 指令而未定义,但我不能用 [hidden] 替换它,因为我将不得不替换所有外部 div 块中的指令。我也尝试使用 ViewChild setter,就像这里的 @ViewChild in *ngIf:
但随后“Еxpression has changed after it was checked”出现在控制台中。设置超时也无济于事。
如何正确更改模板?