问题标签 [ngoninit]

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 投票
4 回答
3814 浏览

javascript - 在使用 Angular 2 显示之前完全加载内容

在 an中,angular component我从 a 生成图像service http call,然后我想在网站上显示。但是,生成图像所需的时间比加载站点所需的时间要长。

因此,当它最终加载时,我不得不额外刷新几次以查看/显示实际图像。

如何ngOnit在显示页面之前等待所有内容生成和加载?

我希望在此呼叫之后显示页面。

对此有任何提示吗?

0 投票
0 回答
267 浏览

angular - ngOnInit & 量角器

我有一个在 ngOnInit 中执行一些初始化逻辑的组件。这种初始化使组件改变了它的状态,我们在模板中反映了这个状态。在这种情况下使用量角器实现一些 e2e 时,我似乎无法检查 ngOnInit 中发生的不同状态变化,因为它们没有反映在量角器中。

让我们想象一下我的 ngOnInit:

这是我的模板:

如果在我的测试用例中,我会执行以下操作:

结果是我总是在控制台中得到一个空值。

量角器和检查 ngOnInit 中发生的更改是否有任何限制?

谢谢。

0 投票
2 回答
3246 浏览

angular - Angular 2:找不到 ngOnInit/ngOnDestroy

注意:我发现文章在实现过程中在 typescript 中找不到 OnInit但下面的代码已经在导入OnInit/ OnDestroy

我发现的所有示例(例如,使用路由参数)都表明在类定义中添加implements OnInit/子句,并在订阅以从路由获取参数时包括/方法——代码正在这样做。OnDestroyngOnInitngOnDestroy

但是VS2017子句报错“错误实现OnInit/OnDestroy”,函数报错“Cannot find ngOnInit/ngOnDestroy”。

如果我删除implements子句并注释ngOnInit/ngOnDestroy函数(仅在 的主体中留下代码ngOnInit),则代码有效;它成功地从路由参数中获取参数。

0 投票
1 回答
499 浏览

angular - 在 Angular 6 中选择带有 RxJS 的状态不起作用

在我使用 Angular 和 RxJS 6 的网络应用程序中。该应用程序有一个登录,登录的响应是一个令牌,所以登录后,我将令牌保存在 sessionStorage 中,然后我解码令牌以保存当前登录用户。这是登录后的状态:

在此处输入图像描述

我正在尝试开发这种行为:如果用户转到页面“..login”(所以在 login.components.ts 中)并且如果他已经登录,则应用程序将重定向到主页。这是我在login.component.ts中的 ngOnInit() 中的代码:

这是 AppState 的接口:

测试它,我登录,我回家,然后我进入登录页面,我在 console.log() 中放了一个断点,但它没有到达断点,它甚至没有进入它,所以它没有'不重定向到主页。为什么?

* 更新 * : 这是调试屏幕 在此处输入图像描述

0 投票
1 回答
167 浏览

angular - 导航到路由参数时未调用 ngOnInit

我使用过的每个版本的 Angular 都遇到这个问题已经有一段时间了,但我一直在捏造我的方式(目前在 6.0.3 上)。我有这样的路线设置:

而且我正在很好地读取 ngOnInit 中的参数,我可以在模板等中显示它。之后,我可以快速设置我实际想要显示的参数的漂亮版本,但这在第一次之后永远不会更新导航到任一路线。我为每条路线做不同的事情也是如此。

我应该只制作单独的组件而不是使用参数还是我遗漏了一些明显的东西?

0 投票
1 回答
544 浏览

angular - 角度材料 - 标签与输入重叠

Angular 6Angular Material.

问题:当浏览器自动填充字段时,标签与输入重叠。

我试图复制这个问题,stackblitz但运气不佳。

附上截图了解更多详情

在此处输入图像描述

chrome 控制台选项卡中没有列出任何问题。

LoginComponent的缺乏ngOnInit-ngAfterInit我目前没有这些方法的任何代码。

也许我误解了控件应该如何在页面加载时初始化的概念。

有人已经解决了这个问题吗?

0 投票
1 回答
2685 浏览

angular - Angular 5中的Constructor和ngOnInit有什么区别

我在 Angular 中有一个父类和子类。当尝试在子类中创建构造函数时,它会引发一些错误:

派生类的构造函数必须包含“超级”调用。

如果添加代码ngOnInit而不是constructor. 那么这两者有什么区别呢?两者都将在实例化类时被调用。

0 投票
0 回答
230 浏览

angular - 将输入加载到 DOM 后将值绑定到输入角度 4

我写了绑定脚本ngAfterViewInit,还是绑定到undefined,输入加载到DOM后在哪里调用

HTML

TS

0 投票
0 回答
92 浏览

angularjs - AngularJS 1.6 和 $onInit-Hook

我正试图围绕 AngularJS 关于组件生命周期钩子的更改,尤其是$onInit(). 我正在与 Todd Mottos Course 合作,他在那里构建了一个组件,在我看来,它不应该与 1.6 一起使用,但它仍然可以:

不明白,为什么

仍然有效,我认为“ctrl.list”必须在 $onInit 中初始化,否则它仍然是未定义的?

0 投票
1 回答
7912 浏览

angular5 - 组件 ngOnInit 中的 Angular 订阅

我正在学习 Angular 5+,最近来到主题/订阅部分,我看到许多教程想以某种方式使用订阅:

  1. 在组件中声明订阅
  2. 通过服务的主题或 ngrx/store 在 ngOnInit 中订阅它
  3. 在 ngOnDestroy 中取消订阅

但是,我不确定我们是否必须订阅/取消订阅 ngOnInit 和 ngOnDestroy 组件中的每个订阅。例如,如果我的订阅将通过按钮单击事件进行更新,我应该在我的组件中订阅哪个计划?

  1. 只有 ngOnInit
  2. 仅按钮单击事件
  3. ngOnInit 和按钮单击事件

为什么我们总是在 ngOnInit 中订阅订阅?ngOnInit 就像页面生命周期中的 Page_Load 一样,所以它只会在第一次调用一次,如果是这样,每当订阅更新时,ngOnInit 会被一遍又一遍地触发吗?如果是这样,我的组件是否会一遍又一遍地加载,如果在大型应用程序中会导致性能问题?