4 回答
TA贡献1906条经验 获得超3个赞
您还可以尝试通过强制值引用更新来强制更改检测,例如通过扩展运算符:
this.endpointService.loadData().subscribe((response) => { this.data = [...response]; });
TA贡献1847条经验 获得超11个赞
我已经解决了这个问题,更新了子输入传递的属性,而不是重新分配它。我认为 Angular 将输入作为副本传递。所以,在订阅正文中你应该使用
resultOfSubscribe.forEach((v) => varPassedByInput.push(v));
TA贡献1906条经验 获得超10个赞
我用静态字符串数组替换了该服务,效果很好。我认为可观察订阅有问题。
子组件.ts
import { Component, OnInit,Input } from '@angular/core';
@Component({
selector: 'child',
templateUrl: './child.component.html',
styleUrls: ['./child.component.css']
})
export class ChildComponent implements OnInit {
@Input() data: any[] = [];
constructor() { }
ngOnInit() {
}
}
父组件.ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'parent',
templateUrl: './parent.component.html',
styleUrls: ['./parent.component.css'],
})
export class ParentComponent implements OnInit {
data: string[] = [];
constructor() {}
ngOnInit() {
this.data = ['hello', 'world','aaa','ddd'];
}
}
TA贡献1811条经验 获得超4个赞
模板表达式中似乎存在一些其他错误,导致整个模板失败。这是我创建的 stackblitz,一切正常:https://stackblitz.com/edit/angular-ivy-w2ptbb ?file=src%2Fapp%2Fhello.component.ts
您在控制台中可能有一些错误吗?
添加回答
举报