我知道ngOnInit
和constructor
都能在页面初始化的时候执行,constructor
比ngOnInit
快,并且看到官网说尽量将复杂的内容放在ngOnInit
里,我也一直是这么做的。
然而最近遇到了一个问题,跳路由之后,页面只执行constructor
没有执行ngOnInit
,当我再次点击路由或者输入页面中的Input框时,才执行ngOnInit
。这导致了一个问题,跳路由时,我的页面加载不完全。
然后又滚去看官网,有这样一句话:Remember also that a directive's data-bound input properties are not set until after construction. That's a problem if we need to initialize the directive based on those properties. They'll have been set when our ngOninit runs.
中文翻译:另外还要记住,在指令的 构造函数完成之前 ,那些被绑定的输入属性还都没有值。 如果我们需要基于这些属性的值来初始化这个指令,这种情况就会出问题。 而当 ngOnInit 执行的时候,这些属性都已经被正确的赋值过了。
我表示没有看懂,另外看到说ngOnInit
会在第一次执行ngOnChanges
之后执行,那么我遇到的这个问题是因为我没有触发ngOnChanges
吗?
求大神解答。
以下是我的代码:
html
largeQ
相关分类