【问题标题】:Object Promise is returned when accessing specific object attribute in an array of objects? (Angular - Ionic)访问对象数组中的特定对象属性时返回对象承诺? (角度 - 离子)
【发布时间】:2021-08-09 02:03:12
【问题描述】:

我有一个对象数组,我希望能够在该数组中的单个对象中提及特定属性。到目前为止我所做的如下:

我将我的对象数组存储在 Ionics 存储中。然后我使用异步函数将对象数组分配给我的打字稿文件中的数组:这可以在这里看到;

//The new array
users: User[] = [];

//The async function
async readUsers() {
    this.users = await this.service.readUsers();
    this.index = this.users.findIndex((x => x.id == this.passed_id));
    return this.users[this.index];
  }

异步函数将数组分配给 this.users,然后我找到我想要的对象并将其索引分配给 this.index,然后我用它来标识 this.users 数组中的所需对象。到目前为止,一切都很好,我设法在存储的数组中获取所需的对象。

然后我可以使用以下方法读取所选对象的属性:

“alert(this.users[this.index].firstName)”,而不是异步函数中的最后一行。这也很好用。

但是,现在我想在表单构建器控件中提及一个特定对象,如下所示:

firstName: [this.readUsers(), Validators.required],

这不起作用,返回的只是[Object Promise]。为了从上述对象数组的表单输入中读取特定属性(作为文本),我可以在这里做什么?任何帮助表示赞赏。

【问题讨论】:

    标签: arrays angular typescript ionic-framework ionic4


    【解决方案1】:

    您必须等待 this.readUsers() 才能获得未包装的值。

    async method() {
       ...
       firstName: [await this.readUsers(), Validators.required],
       ...
    }
    

    也许对你来说,你必须这样做:

    form: any; // using any, but you can change the type to what FormBuilder returns
    ....
    async ngOnInit() {
      const users = await this.readusers();
      this.form = this.formBuilder.group({
         firstName: [users, Validators.required],
      });
    }
    

    【讨论】:

    • 谢谢!完美运行。
    猜你喜欢
    • 2022-01-01
    • 2019-08-11
    • 2020-01-04
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多