在我的代码中,我遇到ngIf值更改错误,并且不确定执行此操作的正确方法是什么。 这是我的HTML:
<div *ngIf="currentVlaue">
<div class="section-body">
<div class="form-group">
<label>Name</label>
<input [(ngModel)]="currentValue.name"
type="text"
class="form-control" required />
</div>
</div>
</div>
在我的组件中,我有:
public currentValue: ValueModel;
@Input() public values: ValuesModel[];
constructor(){}
ngOnInit(){}
ngOnChanges(changes: SimpleChanges){
let indexOfValues = "someValue";
if (changes[indexOfValues ] &&
changes[indexOfValues ].indexOfValues &&
changes[indexOfValues ].previousValue !== changes[indexOfValues ].currentValue) {
if (this.values && this.values.length > 0) {
this.indexOfValues = this.actions[0];
}
}
}
我也有addValue,editValue,deleteValue和saveValue方法。 我有什么办法可以解决此错误?
答案 0 :(得分:1)
您需要使用属性默认值(空)创建模型currentValue。另外,请删除ngIf代码。
public currentValue: ValueModel = {
name: ''
};
@Input() public values: ValuesModel[];
constructor(){}
ngOnInit(){}
https://stackblitz.com/edit/angular-9ywghz?file=src%2Fapp%2Fapp.component.ts
答案 1 :(得分:-1)
原因::{{1}如果更改检测被触发并计划更新视图,并且在此之间进行更改,那么profile_data
就会出现。
解决方案1::当我们以names
模式而不是headers = ['Time','Bid','Ask']
df = pd.read_csv('quotes_format.csv', names=headers)
模式运行应用程序时,将发生此错误。在ExpressionChangedAfterItHasBeenCheckedError
中,我们可以在development
之前production
您的主模块中。
main.ts
解决方案2 :在enableProdMode()
中手动进行呼叫更改检测。
bootstrapping