问题标签 [ngonchanges]
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.
javascript - OnChanges 不会在部分对象更改时触发
我在触发 Angular(6) 的onChanges
生命周期挂钩时遇到问题。在将参数从组件发送到指令时,我想挂钩更改。
触发器完美地适用于一维变量,而对象未正确触发。特别是如果多维对象的一部分被传输到子指令。至少它有效,但OnChange
钩子只触发一维变量。
仔细查看 StackBlitz,我在其中提供了一个可执行示例。介意打开控制台,看看,触发了哪个生命周期: https ://stackblitz.com/edit/angular-vhaews
app.component.ts
app.component.html
canvas.directive.ts
免责声明:这个问题是一个更大问题的一部分,我试图找出主要问题。所以请不要看太多细节,它实际上是关于生命周期钩子和多维对象。
angular - Angular ngOnInit() 和 ngOnChanges() 有什么区别?
Angular 默认提供生命周期钩子 ngOnInit() 和 ngOnChanges()。如果我们已经有一个 ngOnChanges,为什么还要使用 ngOnInit?还有构造函数。
angular - Angular5:ngOnChanges 被称为非常慢
我正在使用 Angular 5。我有一个简单的父组件和一个子组件。从父组件我将 searchTerm 传递给子组件。子组件使用 searchTerm 文本来搜索并在表格中显示结果。然而,一切正常。在搜索框中输入 searchTerm 后大约 15 秒后调用 ngOnChanges。控制台或网络中没有活动。我不确定为什么这么晚才调用 ngOnChanges。在 15 秒内调用后,搜索工作和结果显示速度非常快。在同一页面上,我使用 Web Socket 连接来显示通知。我尝试注释掉执行 Web 套接字连接的代码。但是,即使在那之后搜索也很慢。如果您有任何想法,请告诉我。
angular - ngOnChanges 不间断地触发并使应用程序不响应
我构建了一个名为“gw-responsive-tabs”的组件,该组件具有一个带有变量(navLinks)的输入,该变量是我要显示的选项卡的数组。当我像这样从 html 传递输入数据时:
然后一切都按预期工作,我可以看到 2 个选项卡。
如果我更改它并使用 getter 或函数发送相同的数据,那么 gw-responsive-tabs 组件的 ngOnChanges 会以非常高的频率不间断地触发,并且从那时起,chrome 没有响应。
和html:
有什么想法会导致这种现象吗?
angular - 检测 @Input 属性角度 4 的内部变化
我知道 ngOnChanges 是在其父组件的组件 @Input 属性时触发的。但是我如何检测 @Input 属性是否在其组件中发生更改。我一直无法找到一个好的答案。谢谢
angular - ngOnChanges 没有触发
changeEnt()
如果我运行方法,我无法弄清楚为什么 ngOnChanges 会被执行,而如果我点击 GoogleMaps 标记则不会被执行。
这是我的父组件
这是我的父组件模板
这是我的子组件
如果我加载地图并单击标记markerClickHandler()
,则会执行,但不会拦截更改。
否则,如果我单击 html 按钮Change ENt
并changeEnt()
执行更改,则会被拦截。
我引入了一个超时来检查问题是否是由于上下文的变化,但似乎不是
javascript - Angular ngOnChange 事件未在 Firefox 上触发
此问题仅在 Firefox 上发生,在 Chrome 和 Safari 上运行良好。我不知道为什么会发生这种情况,我一直在谷歌搜索和堆栈溢出,但他们都没有遇到和我一样的问题。
整个 web 应用程序在 Firefox 上根本没有交互。按钮单击但没有任何反应。(如果是路由链接,它将导航。)这是问题的简单版本。
例如,我有一个重新生成一些数据的按钮。然后该数据传递给子组件(图形组件)进行绘图。我在三个地方放置了控制台日志。
- 点击事件回调。
- 数据生成方法。
- 子组件的 ngOnChange()。
我已经打开了 chrome 和 firefox 浏览器。Chrome 会打印所有三个日志,但 Firefox 只打印前两个。所以我最初的结论是点击事件被触发,数据已经生成,但是 ngOnChange 事件在 Firefox 中没有被触发。
以前有没有人遇到过同样的问题,或者它与 ngOnChange 生命周期无关?
更新: ngOnChange 确实在开始时触发
angular - ngOnChanges 没有被触发
您好,我是 Angular 新手,遇到了一点问题,这是我的代码:
在 ngOnInit 中,我每 5 秒收集一次数据并将这些数据存储到我的消息变量中,这是一个 Input(),所以它应该每 5 秒触发一次 ngOnChanges 吗?我错过了什么?
javascript - Angular 6 检测图表的变化
我正在使用 angular 6 和 Leaflet 进行映射。我想创建一个交互式地图,根据我在表单中选择的属性更改视图。
我已经设置了在 ngOninit 中绘制图形的条件,但是该条件仅在加载应用程序时才有效,而我希望它在每次修改表单时都有效。
有人可以让我上轨道吗?
组件.ts
组件.HTML
angular - Angular ngOnChanges 不会被调用
当 Input 属性发生变化时,Angular 不会调用变化检测。我已经读过,除非绑定发生变化,否则 Angular 不会调用 onChanges,但在此示例中,我已将输入绑定到 ng datePicker 模型,但仍然没有调用 ngOnChanges。
下面是附加的 stackBlitz 示例: https ://stackblitz.com/edit/angular-zvpice