调用函数并将值放在角度形式组中

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/…

以上是关于调用函数并将值放在角度形式组中的主要内容,如果未能解决你的问题,请参考以下文章

C语言函数归纳

php函数

17)PHP,函数基础和参数问题

函数基础之调用,参数,可变长参数

php 函数

如何理解Java的值传递