调用函数并将值放在角度形式组中
Posted
技术标签:
【中文标题】调用函数并将值放在角度形式组中【英文标题】:call function and have the value placed in angular form group 【发布时间】:2022-01-04 13:37:18 【问题描述】:我有一个问题让我很困惑。它最简单,但我超级卡住了。
问题是,我有一个函数:
public getListTitle(): any
const listId = this.route.snapshot.paramMap.get('listId');
console.log("het list-id = " + listId);
this.listService.getListNo404(listId).subscribe(list=>
this.listTitle= list.listTitle ;
console.log(this.listTitle);
);
console.log(this.listTitle);
return this.listTitle;
我想在我的 fb 组中传递 listTitle 元素:
this.newList = this.fb.group(
'listTitle': [this.getListTitle()],
'listId':['873'],
'listCreator':[this.username],
'sublist': this.fb.array([
this.initSublist()
])
);
但是我无法让它工作。用地图和订阅尝试了各种事情,但显然我还没有想到什么。
我还在控制台中看到第一个 console.log 确实打印了所需的值,但第二个没有。所以订阅出了点问题。
非常感谢您的观看!
【问题讨论】:
【参考方案1】:您需要从函数中返回 observable 并在需要响应的地方订阅它。
import Observable from 'rxjs';
import map from 'rxjs/operators';
public getListTitle(): Observable<any>
const listId = this.route.snapshot.paramMap.get('listId');
return this.listService.getListNo404(listId).pipe(
map((list) => list.listTitle) // <-- use `map` operator to return `listTitle`
);
并使用可观察的
this.getListTitle().subscribe(
next: (listTitle: any) =>
this.newList = this.fb.group(
'listTitle': [listTitle],
'listId':['873'],
'listCreator':[this.username],
'sublist': this.fb.array([
this.initSublist()
])
);
,
error: (error: any) =>
// handle errors
);
请参阅here,了解您为什么需要这样做。
【讨论】:
非常感谢,现在可以使用了!!将潜入背景!我通过在模板中添加 *ngIf 设法解决了一个新问题,这有助于:***.com/questions/43669773/…以上是关于调用函数并将值放在角度形式组中的主要内容,如果未能解决你的问题,请参考以下文章