哪个@angular/*包是bug的来源?
core
这是个回归吗?
否
描述
我们在应用程序中使用Webcompoents。目前,在我们的Webcompoent的connectedCallback中,我们希望根据一些属性对基于组件进行一些更改。然而,当connectedCallback被执行时,所有属性都被设置为undefined。
我们进一步调查了这个问题,并发现,目前Angular在将Webcomponent附加到DOM之后设置其属性。
如果你查看下面的stackblitz控制台,你会注意到我们webcomponent内的属性的setter在connectedCallback之后被调用。
我们甚至将这一点与其他框架(如React)进行了比较,其中行为似乎更加标准,因为属性是在组件附加到DOM之前设置的。
React: https://codesandbox.io/s/prod-sky-gw6qcz?file=/src/App.js:259-261
请提供一个最小复现bug的链接
https://stackblitz.com/edit/angular-ivy-rh2gzx?file=src/app/app.component.html
请提供您看到的异常或错误
- 无响应*
请提供您发现此bug的环境(运行ng version
)
Angular : 13.2.0
6条答案
按热度按时间q43xntqr1#
你好,
这个问题有任何更新吗?
eoigrqb62#
你好,@pkozlowski-opensource@gkalpak ,
请能麻烦你看一下吗?
p5cysglq3#
我对运行时/渲染的了解还不够充分,无法对此发表评论。(我最初认为这与
@angular/elements
有关,但仔细观察后发现并非如此。)rkttyhzu4#
我正在微前端实现中遇到相同的问题,自定义元素在被"连接"之前需要一个参数,但Angular在设置属性之前就连接了元素。最后我不得不手动将元素添加到DOM中。
在此之前,我尝试使用以下模板,结果出现了奇怪的行为。
奇怪的行为是,如果组件直接由路由器绘制(例如,在浏览器刷新后),则在
attributeChangedCallback
之前调用connectedCallback
,但如果在导航发生后再绘制,情况就会相反。gdrx4gfi5#
你好,我遇到了与Angular和web组件相同的问题。在Angular 16、14、12和8上都测试过,都会出现相同的错误。
我注意到的是:
unhi4e5o6#
+1