Using angular SSR howcome, I have to manually trigger a change detection if I use afterNextRender.
This is after all an angular API.

有人对此有解决办法吗?

    afterNextRender(() => {      
       this.someAPI.then((items) => {
         this.items.set(items); // <-- set signal
         this.ref.detectChanges(); // <--- trigger change detection
       });
       
    });

我不希望API调用在服务器端进行,这就是为什么我使用afterNextRender

推荐答案

afterNextRender/afterRender回调运行在Angular 区域之外.

在v17中,如果你想要一个信号更新来触发CD,你需要在Angular 区执行它.

afterNextRender(() => {    
 this.someAPI.then((items) => {
   ngZone.run(() => {
     this.items.set(items); // <-- set signal
   });
  });
})

Angular相关问答推荐

cat Owl carousel 位置下一个和上一个图片

我使用Ngrx的子集 Select 器不起作用

带逻辑的组件decorator 中的Angular 主机侦听器属性

如何使用新的@for遍历Angular 为17的对象?

bootstrap 可折叠菜单在单击时未展开.Angular 应用程序

如何使用Angular 将图像作为二进制数据发送到我的API?

Angular CLI 与 Angular 版本不兼容

无法在 app.component.html 中呈现自定义组件

获取 Angular 中所有子集合 firestore 的列表

从 applescript 调用Angular 前端以从列表中 Select 一个项目

如何检测 Angular Universal 预渲染版本?

Angular 12 区域环境切换器

如何根据响应变化更改 Angular Carousel 的cellsToShow

angular 13 ng 构建库失败(ivy部分编译模式)

Angular2 SVG xlink:href

请添加@Pipe/@Directive/@Component 注解

Angular2 CLI 错误@angular/compiler-cli包未正确安装

来自 ngFor 项的动态 routerLink 值给出错误Got interpolation ({{}}) where expression was expected

如何从Angular 2 中的按钮单击触发输入文件的单击事件?

在 RxJS Observable 中 flatten数组的最佳方法