Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 属性在组件中的ngOnInit()之前被触发_Javascript_User Interface_Angular6_Frontend - Fatal编程技术网

Javascript 属性在组件中的ngOnInit()之前被触发

Javascript 属性在组件中的ngOnInit()之前被触发,javascript,user-interface,angular6,frontend,Javascript,User Interface,Angular6,Frontend,我是Angular的新手,我尝试了一些代码,其中属性集在ngOnInit()之前被触发 我不确定这是如何工作的,但是isTriggered=false 有人能解释一下为什么会发生这种情况,以及触发this.isTriggered=true的方法是什么吗,,这与将其初始化为构造函数的一部分一样。ngOnInit发生在之后,这就是为什么要将它设置为false,然后设置为true 只需删除=false,就可以声明isTriggered,而无需为其赋值

我是Angular的新手,我尝试了一些代码,其中属性集在ngOnInit()之前被触发

我不确定这是如何工作的,但是
isTriggered=falsethis.isTriggered=true之前,首先触发code>


有人能解释一下为什么会发生这种情况,以及触发this.isTriggered=true的方法是什么吗isTriggered=false
时,从ngOnInit()执行code>,,这与将其初始化为构造函数的一部分一样。ngOnInit发生在之后,这就是为什么要将它设置为false,然后设置为true


只需删除
=false,就可以声明
isTriggered
,而无需为其赋值当您声明
isTriggered=false
时,这与将其初始化为构造函数的一部分一样。ngOnInit发生在之后,这就是为什么要将它设置为false,然后设置为true


只需删除
=false,就可以声明
isTriggered
,而无需为其赋值,然后只有在ngOnInit中,如果您希望这样做,则将其指定为true。

事实上,这是非常明显的。要调用ngOnInit,您需要App类的实例。创建实例时,首先初始化所有声明的字段。

事实上这很明显。要调用ngOnInit,您需要App类的实例。创建实例时,首先初始化所有声明的字段。

问题在于
ngOnInit
是一种角度生命周期方法,而
isTriggered=false
是Javascript固有的类属性,就像您将它放在构造函数中一样

在Javascript类出现之前的老方法中,它可能更明显

export function App() {
   this.isTriggered = false;
   this.ngOnInit = function() { };
}
这样看来,很明显,在创建
new App()
vs.
ngOnInit
时,将立即调用
isTriggered=false
,而只有在创建了
新的
对象之后,调用
ngOnInit
的对象才会调用该应用程序


Angular生命周期方法将在Angular的框架计时时发生,这意味着它将在该类初始化之后的某个时间发生。在该类的初始化过程中,将设置class属性,因此您会看到调试器首先转到该行

问题在于
ngOnInit
是一种角度生命周期方法,而
isTriggered=false
是Javascript固有的类属性,就像您将它放在构造函数中一样

在Javascript类出现之前的老方法中,它可能更明显

export function App() {
   this.isTriggered = false;
   this.ngOnInit = function() { };
}
这样看来,很明显,在创建
new App()
vs.
ngOnInit
时,将立即调用
isTriggered=false
,而只有在创建了
新的
对象之后,调用
ngOnInit
的对象才会调用该应用程序


Angular生命周期方法将在Angular的框架计时时发生,这意味着它将在该类初始化之后的某个时间发生。在该类的初始化过程中,将设置class属性,因此您会看到调试器首先转到该行

我在本地工作区中有相同的代码,其中this.isTriggered=true;首先被触发,部署代码ISTRIGGERD=false;这是被触发的。我不知道为什么会这样。对不起,问题不清楚。嗯,听起来很奇怪。你怎么查到的?你确定在调用ngOnInit之前没有其他人接触该字段吗?我检查了每一行,代码实际上是一行接一行的,我现在不知道。你能试着用复制它吗?我在本地工作区有相同的代码,其中this.isTriggered=true;首先被触发,部署代码ISTRIGGERD=false;这是被触发的。我不知道为什么会这样。对不起,问题不清楚。嗯,听起来很奇怪。你怎么查到的?你确定在调用ngOnInit之前没有其他人接触该字段吗?我检查了每一行,代码实际上是一行接一行的,我现在不知道。你能试着复制一下吗?很好的解释谢谢很好的解释谢谢