问题标签 [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 - Angular2 更改检测:ngOnChanges 未触发嵌套对象
我知道我不是第一个问这个问题的人,但我在前面的问题中找不到答案。我在一个组件中有这个
在控制器rawLapsdata
中会不时发生变异。
在laps
中,数据HTML
以表格格式输出。这会随着rawLapsdata
变化而变化。
我的map
组件需要ngOnChanges
用作触发器来重绘 Google 地图上的标记。问题是当父级发生更改ngOnChanges
时不会触发。rawLapsData
我能做些什么?
更新: ngOnChanges
不起作用,但看起来好像lapsData
正在更新。在 中ngOnInit
是一个用于缩放更改的事件侦听器,它也调用this.drawmarkers
. 当我更改缩放时,我确实看到标记发生了变化。所以唯一的问题是我在输入数据更改时没有收到通知。
在父母中,我有这条线。(回想一下,变化反映在圈数中,但不反映在 中map
)。
请注意,this.rawLapsData
它本身就是一个指向大型 json 对象中间的指针
angular - 构造函数和 ngOnInit 的区别
Angular 默认提供生命周期钩子ngOnInit
。
为什么应该ngOnInit
使用,如果我们已经有一个constructor
?
angular - Angular2 -- ngAfterViewChecked 被多次调用..如何在 DOM 完全加载后只调用一次方法?
我需要在使用时将jquery
插件应用于单选按钮。Angular2
Typescript
如果我分配 in ngAfterViewChecked
,它会被多次调用并且控件会被多次刷新。
DOM 准备好后调用 javascript 方法的替代解决方案是什么?
angular - 如何在 Angular 2 中再次调用 ngOnInit()?
请在这段代码中解释一下,ngOnInit()
当我调用另一个方法时如何再次调用?
angular - ngOnInit()、ngAfterViewInit()、ngafterContentInit()、ngAfterViewChecked() 和 constructor() 有什么区别?
ngOnInit ()、ngAfterViewInit ()、ngafterContentInit ()、ngAfterViewChecked ()和构造函数()有什么区别?我们如何在 Angular 2 中实现它们?它们的用途和用途是什么?它在哪里对实施它们有用?
谢谢。
javascript - Angular 2+ Window attribute undefined
I'm using an external library that attaches itself to the global window object (window['lib']) once the library's javascript file is loaded by the browser. I'm trying to invoke code using this library whenever a component is loaded, however everytime I try to access the object it is undefined (due to the library not having been loaded). I have tried every lifecycle hook I can think of, however nothing appears to wait for the DOM to be fully ready. For example, I want to do something like this:
If I wrap it in a timeout, then it becomes available. However, this looks like code smell and do not want to approach it this way:
What is the best / suggested / "most angular way" to approach this problem? Thanks!
angular - 从嵌套组件中获取 url 参数
我开发了一个 MEAN 堆栈应用程序,对于前端我使用 Angular。在 Angular 中,我使用导航栏和侧导航栏,它们是我的布局框架。然后路由显示在mat-sidenav-content -> ng-content这里:
框架组件 HTML
其他组件正确显示。但是,我想像这样从框架组件访问 url:
它不起作用,因为它是未定义的,而如果我在其他组件中执行它,它会起作用。我认为这是因为 FRAMEWORK 组件未在路由器中定义,因此该组件没有 URL。
我尝试使用共享数据服务。像这样我在其他组件中设置了 id 值,框架组件可以使用它。但它不起作用,因为框架组件是在其他组件之前加载的。
angular - 使用嵌套的 for 循环了解 Angular 的生命周期钩子和模板
一直在努力解决我在处理一些现有代码时遇到的问题。
它是一个在 HTML 中带有选择器的组件,如下所示:
和具有这种结构的模板(释义):
变量 1 和 2 设置为@Input
s
它们是可选的。所以我们想要做的是检查它们是否在选择器中被赋予了一个值。如果是这样,我们将模板中的变量设置为该值。本质上是将选择器中的变量值传递到我们的模板中以呈现内容。
所以第一个的逻辑是这样的:
这很好用。模板将 content1 呈现为通过 @input 传入的 variable1 的值。
但是,我不能将 variable2 的相同逻辑放入ngAfterContentInit()
. 这样做会导致this.content2
为空。
我发现我可以将相同的逻辑设置this.content2
在ngAfterViewChecked()
钩子内部,它会在那里工作。但是,它只“需要”第二次ngAfterViewChecked()
被调用(以及之后的每次)。
我唯一的想法是第一个生命周期钩子不等待 for 循环完成。当存在 for 循环时,我觉得我缺少对将变量传递到模板的理解。
目前,我的解决方案是获取 variable2 的值ngAfterContentInit()
并将其传递给第三个变量,然后我用它来设置 content2 in ngAfterViewChecked()
。我有一个计数器,所以我只尝试设置它两次(任何进一步的调用ngAfterViewChecked()
都不会尝试重置 content2)
不过,这感觉非常难看!
angular - 如何以角度创建“ngOnActive”生命周期挂钩?
我希望当我的组件在主页上处于活动状态时调用生命周期挂钩。
它的登录页面。
当我的组件在主页上时,即处于活动状态时,我想查看我是否已经拥有以前登录的登录令牌,并且根据结果我想导航到不同的页面。
如果没有,是否有任何“ngOnActive”钩子,那么如何创建它?
还是有其他方法可以实现这一目标?
我的代码:
angularjs - AngularJS 纯 ng-controller 生命周期钩子
假设使用指令声明的纯AngualrJS (1.6.x)控制器ng-controller
(与组件控制器相反)。
它有生命周期钩子吗$onInit
?$onDestroy