问题标签 [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 投票
1 回答
905 浏览

angularjs - 在 $onInit 中的其他函数完成后运行该函数

在我的 $onInit 函数中,我有两个获取数据的函数。我在需要前两个数据的地方使用第三个函数。我在第三个函数中执行的逻辑是将在屏幕上呈现的内容。如何在 $onInit 中使用回调并确保第三个函数没有在前两个函数之前运行?

编辑我的代码示例

0 投票
1 回答
51 浏览

angular - Angular 中 ngOnInit() 的意义是什么?

我们不能在构造函数中执行所有相同的操作吗?

0 投票
2 回答
1668 浏览

angular - Angular 4:在 ngOnInit() 方法下,无法获取表单元素的值。'get' 是未定义的错误来了

描述:

Angular 4,反应式方法,尝试通过创建验证器函数并在 ngOnInit() 方法下传递该函数来比较字段值。

请在下面找到我的代码,

在上面的代码中,我创建了“checkPassword”验证器函数来比较控制值和密码值。当我在 ngOnInit() 方法下将此函数作为验证器函数的一部分传递给字段“cnfpwd”时,在运行时,我收到以下错误。

无法找到解决方案,请您指出任何解决方案吗?谢谢。

0 投票
0 回答
49 浏览

angular - 从服务中设置 md-select 输入

我在设置我的应用程序的一部分时有一个“服务”。我在 Firebase 中推送数据。在另一个组件中,我有一个带有“md-select”的表单,可以读取相同的数据。问题是我无法初始化列表。出来并回到组件中一切正常。该列表按预期填充。

这是我在设置部分的服务。

和组件:

为什么如果我在我的 ngOnit 部分中调用列表,它不起作用?谢谢

0 投票
1 回答
1135 浏览

angular - Angular 4 - 获取和设置 ng-model

我正在尝试获取并将布尔值设置为“检查值”。我想事先调用一个函数 isItTrue 来设置变量'checkvalue'。如果该框(未)选中/并且我选中它,它应该调用函数doSomething()。我正在尝试,<input type="checkbox" id="{{ class.id }}" ng-init="checkBoxValue=isItTrue(class.id)"[(ngModel)]="class['checkBoxValue']"/>但它似乎不起作用。有什么建议么?

0 投票
0 回答
517 浏览

angular - 从 ngOnInit() 和后续钩子重定向导致当前组件重新加载

尝试根据提供的参数从 ngOnInit()、ngAfterViewInit() 等钩子之一重定向到新组件。如果击中路由器导航线,则当前组件将执行多次。

工作解决方案:

主模块:

路线:http://localhost:4200/#/referrer/vehicle1/referrer1

推荐人组件:

因为这种情况只有在实际发生重定向时才会发生,因此不确定将重新路由(生命周期)准确地放在哪里。

0 投票
4 回答
10646 浏览

angular - routerlink 更改时不调用 Angular 2 ngOnInit

我有一个菜单栏,其中包含从express api加载的菜单列表,并且每个菜单都引用到具有别名的页面,该别名将是该页面的 URL,当我单击菜单时,我试图加载该页面,它完成了但只有当我刷新页面时我的菜单代码

}

这是我的模板菜单

我认为问题出在我的页面组件的 ngOnInit 中,它没有被调用

这是我的页面模板

这是我的应用程序路由代码

这是我的应用组件

带有菜单栏的应用程序主页

0 投票
3 回答
52 浏览

javascript - 将 ID(Index) 传递给 onEditDetail() 参数

如何将值索引或 id 传递给 EditDetail() 参数。一旦我单击 html 中的 onEditDetail(),我希望它被放在 onEditDetail() 的括号内

user-detail.component.html

0 投票
1 回答
596 浏览

angular - 添加重新激活验证器以使用选项卡中子组件中的输入形成

我创建了一个表单(在父级中),有 2 个输入,每个子组件中有一个(每个组件都在 ngbootstrap 选项卡中)。我将表单组传递给每个子组件,并将验证器添加到每个组件的 ngOnInit 中的表单组。

我发现每个组件的 ngOnInit 仅在单击查看选项卡后才运行。这意味着在我查看每个选项卡之后才能确定整个表单的有效性(以防输入以无效状态开始)。

处理这个问题的正确方法是什么?由于在查看选项卡之后才创建表单组件,因此我无法在父级中添加验证器。

0 投票
1 回答
6389 浏览

angular - 在 ngOnInit 中添加验证器时的 ExpressionChangedAfterItHasBeenCheckedError

我正在尝试将自定义验证器添加到输入中,但是当我这样做时会触发 ExpressionChangedAfterItHasBeenCheckedError 错误,说明某些内容从 TRUE 更改为 FALSE。

我将问题追溯到以下行:

如果我删除 TabValidator.ipaddress() 那么错误就会消失。同样,如果我的验证器强制返回“null”,那么错误就会消失。我的验证器如下:

从控制台日志看来,验证器每次都返回相同的值。

有人可以解释这里出了什么问题吗?我无法解释什么变量从“真”变为“假”,因为上面的行中没有涉及布尔值。验证器如何返回不同的值而不出现在我的控制台日志中?

我读了一个关于不在 ngOnInit 中做事的 SO 问题,但这似乎是一个红鲱鱼。


更新:我试过:

并且

但随后错误变为:

ERROR 错误:找不到名称为“网关”的控件


解决方案:

我将此追溯到一个错误 - 使用反应式表单 + 验证器 + ngb 选项卡。将验证器添加到选项卡上的控件会导致错误。唯一的解决方案是更改为模板表单。