从 HTML 调用函数到打字稿未等待完成

Calling function from HTML to typescript not waited to finish

我有一个 HTML 元素,如下所示

<div *ngFor="let item of items">
    <input type='number' [min]="getMinData(param1,param2)" />
</div>

在ts文件里面

 getMinData(rules: ConstraintRule[], id: string) {
    rules.forEach((rule) => {
      rule._metadata.productList.forEach((product: SProduct) => {
        product.OptionGroups.forEach((optionGroup: SProductOptionGroup) => {
          optionGroup.Options.forEach((option: SProductOptionComponent) => {
            if (option.ComponentProductId == id) {
              return option.MinQuantity;
            }
          });
        });
      });
    });
  }

此外,没有任何 API 调用或任何其他东西,它只是对本地数据的过滤。

但是,在 HTML 没有返回正确的数量。

你必须 return 一些东西才能 getMinData 功能。

目前,您调用 return option.MinQuantity;,但它是匿名函数的结果 - (option: SProductOptionComponent) => {

如果您只想找到第一个 option.MinQuantity,试试这个函数:

getMinData(rules: ConstraintRule[], id: string) {
  let minQuantity = 0;

  rules.forEach((rule) => {
    rule._metadata.productList.forEach(({ OptionGroups }) => {
      OptionGroups.forEach(({ Options }) => {
        const foundOption = Options.find((o) => o.ComponentProductId === id);
        minQuantity = foundOption ? foundOption.MinQuantity : 0; // Default min value is 0
      });
    });
  });

  return minQuantity; // return value
}