问题标签 [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.

0 投票
0 回答
500 浏览

angular - ngOnInit() 被调用两次并获得两个 API 响应

app.component.ts

app.component.html

ngOnInit()据我所知,该 API 被调用了两次。为什么会这样,我该如何解决这个问题?

0 投票
3 回答
865 浏览

angular - 在 Angular 10 中的 ngOnInit() 之后执行某些逻辑

我想在之后执行一些逻辑,ngOnInit()因为我想将逻辑与页面渲染分离。我想到了 Angular 生命周期钩子,所以我将逻辑放入其中ngAfterViewInit(),但似乎它与ngOnInit().

代码示例:

根据 Angular 生命周期钩子,ngAfterViewInit()应该在 之后执行ngOnInit(),但代码运行结果表明并非如此。itemFoundinngAfterViewInit()始终是“未定义的” 。

我试图将代码块从ngAfterViewInit()to ngOnInit(),在 promise 调用之后,itemFound将获得适当的值。

谁能帮忙解释哪里出了问题?是因为 Promise 调用是异步的吗?

0 投票
0 回答
61 浏览

angular - 如何在 Angular Material 对话框中重用实例化组件?

我们正在尝试创建一个具有两个“视图状态”的组件 - 状态 A 在文档流中与往常一样(类似于预览/缩略图)。状态 b 应该是它的放大版本(模态)。

我们可以毫无问题地创建一个组件并在页面中使用它(状态 A)。然后我们实现了一个放大它的函数(Angular Mat 对话框),它是状态 B。不幸的是,这将创建我们组件的一个新实例,我们将丢失所有实例化的数据/状态。

问题:是否可以重用组件实例来保持状态并可能节省资源?

0 投票
1 回答
47 浏览

angular - 无法以角度更新子组件属性

我有一个过滤数据的功能。当我在过滤器弹出窗口中输入一些值时,它会成功显示结果。然后我将这些数据添加到本地存储中(因为我需要将这些数据保留在反向链接中)并且我正在重定向到另一个页面,当我按下当前页面上的后退按钮并导航到相同的过滤器组件时,我需要设置过滤器组件值来自本地存储,但我收到这样的错误“无法在 SearchUserGridComponent.autoFillAdvanceSearch 设置未定义的属性'状态'”我在这个问题上非常努力,请帮忙。代码如下所示。

当用户单击返回按钮时,这些方法将在 search-User-Grid.component.ts 上调用

0 投票
1 回答
35 浏览

angular - 如何在不调用 fixture.detectChanges() 的情况下绑定模板?

我正在修复/向现有应用程序添加单元测试。下面是代码遵循的模式。方法调用其他方法。单元测试使用一些模拟类。

调用fixture.detectChanges( )就是调用ngOnInit(),它调用链中的所有其余方法。我想要的只是调用一种方法,methodC()

我调用fixture.detectChanges()的原因是将新值绑定到模板。有没有办法在不调用fixture.detectChanges()的情况下这样做?

这里的模板

我的单元测试

感谢您的帮助。

0 投票
1 回答
280 浏览

jquery - 动态加载外部javascript文件在角度6中不起作用

我正在使用Angular 6,正在尝试在我的项目中添加Bootstrap Multiselect 。但是这里遇到了一些bootstrap-multiselect.js无法在页面中加载的问题。

所以我想动态添加添加这个bootstrap-multiselect.js文件,但它没有加载请帮助我

索引.html

app.component.ts

app.component.html

它仍然显示如下:

在此处输入图像描述

请帮助解决这个问题angular 6。这个问题可能已经问过了,但这并不能解决我的问题。

提前致谢。

0 投票
1 回答
120 浏览

angular - 如何知道动态创建的 Angular 组件何时可以在 DOM 中请求?

我像这样动态创建一个 Angular 组件(代码被简化,有一些缺失的部分):

我必须等待大约 200 毫秒才能让我的组件在 DOM 中可用以请求……否则它返回未定义。我试图实现ngAfterViewInitMyComponent然后公开一个可观察的,以便我可以订阅它然后请求它,但它仍然返回未定义。MyComponent只有@Inputs 和一个模板,没有别的。模板看起来像这样:

我如何知道动态创建的组件何时可供请求?

0 投票
0 回答
21 浏览

angular7 - 在 URI 中的每个选项卡更改上提示输入密码 - Angular 7

我有一个/adminURI,其中有 3 个子选项卡

2 个子选项卡的内容是从不同的组件中提取的,在这 2 个子选项卡之间切换时,应出现密码提示页面或弹出窗口,并且只有在密码正确的情况下才会显示各个选项卡的内容。\

如何使用 Angular 生命周期钩子来实现这一点?

0 投票
2 回答
175 浏览

angular - 如何在角度生命周期钩子中使用等待?

堆栈闪电战代码

我正在开发一个角度应用程序来导出 PDF,但在导出的 PDF 中看不到数据值。我的方法:我有2个组件(登录,主页),在登录组件中创建了一个按钮(导出),它将用户导航到主页组件,并且在ViewInit之后它将生成pdf。我在 ngAfterViewInit() 生命周期钩子中编写了 pdf 生成代码。当我尝试等待响应时,它不起作用。

我尝试了以下两种方法,home.component.ts但仍然没有任何效果

有什么方法可以等待结果并生成 PDF 吗?

预期结果:等待/获取的响应应出现在生成的 PDF 上:)

0 投票
3 回答
245 浏览

angular - 在 Angular 11 中完成 Obsevable 和渲染后如何运行代码?

在我的 Angular 11 项目中,我有一个 Observable,它改变了视图并在渲染时需要一些时间。

像这样的东西:

运行后ngOnInitobservable 仍在运行和处理数据。数据到达后,管道更改模板。但是这种变化发生在ngAfterViewInit完成之后。所以我需要一个在管道之后运行的灵魂,并且渲染完成了正在发生的事情,因为管道完成了。

在我的可观察对象和导致的渲染完成后,如何运行代码(工具提示初始化)?

ngAfterViewChecked不是一个好的解决方案,因为它总是在视图更改时运行,而且我的工具提示初始化也会更改视图。所以我只想运行一次这个初始化。

有什么解决办法吗?