gpt4 book ai didi

angular - 如何设置 Observable 的默认表单值?

转载 作者:行者123 更新时间:2023-12-01 23:14:36 25 4
gpt4 key购买 nike

这是我的 ts 组件

export interface Product{
id?:string,
name:string,
price:string;
quantity:string;
tags:Tags[];
description:string;
files: File[];
}

product$:Observable<Product | undefined>;

ngOnInit(): void {
this.store.dispatch(new productActions.LoadProduct(fromProduct.getCurrentProductId.toString()));
this.product$ = this.store.pipe(select(fromProduct.getCurrentProduct));
}

最后和第二个语句收集产品可观察值并且工作正常。

this.product = this.fb.group({
name:['',[
Validators.required,
Validators.minLength(1),
Validators.maxLength(128)
]],
price:['',
Validators.required],
tags:this.fb.array(this.tags),
quantity:['',Validators.required],
description:['',
Validators.required]
});
}

现在我想要的是设置 Form from Product$ (observable) 的默认值

以上代码设置了名称''的默认值。但我想从 (product$ | async).name----->> 设置一个默认值,这在 Html 中工作正常,但我不知道如何在 typescript 中做到这一点。

谢谢你帮助我。

最佳答案

您可以将整个 FormGroup 初始化放入订阅中。不过不要忘记使用第一个运算符,因为您只想执行一次然后取消订阅。

this.product$
.pipe(first())
.subscribe(product => {
this.product = this.fb.group({
name:[product.name,[
Validators.required,
Validators.minLength(1),
Validators.maxLength(128)
]],
price:['',
Validators.required],
tags:this.fb.array(this.tags),
quantity:['',Validators.required],
description:['',
Validators.required]
});
}
});

关于angular - 如何设置 Observable 的默认表单值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69233514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com