プログラムでformControlにブール値を設定しようとしています。しかし、これは汚れた形をしています。 FYI FORformControlをブール値 'true'でプログラムで設定すると、フォームがダーティとマークされます
this.formGroup.get(ruleOutput.attributeKey).setValue(JSONUtils.parseJSON(ruleOutput.attributeValue))
、JSONParserコード(ここではすべてのエラーを考えてはいけない):
角ドキュメントで行く、 https://angular.io/api/forms/AbstractControl#pristineコードを「コントロールの値へのプログラムの変更は、汚い、それをマークしていないだろう」
public static parseJSON(input : any) : any{
try{
return JSON.parse(input);
}catch(Error){
console.log("Inside JSON Utils: Error while parsing input JSON :");
console.log(input);
console.log(Error.toString());
console.log("Return Empty JSON");
return JSON.parse("{}");
}
}
ポイントは値を設定した後、フォームがダーティーとしてマークされています。
この問題の根本的な原因を手伝ってください。
IF(ruleDataList && ruleDataList.length> 0){ ruleDataList [0] .ruleOutputList.forEach( ruleOutput => { IF(DisplayUtils.isKeyDisplayable(ruleOutput.attributeKey、 "*")){ this.formGroup .get(ruleOutput.attributeKey).setValue(JSONUtils.parseJSON(ruleOutput.attributeValue)); this.formGroup.get(ruleOutput.attributeKey).markAsPristine; }} ) this.ruleDataAlreadyExists = TRUE。 } –
このデモを作成してください。なぜこのようなことが起こるのかわかりません。 – Alex