Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度上下文绑定_Angular_Typescript - Fatal编程技术网

Angular 角度上下文绑定

Angular 角度上下文绑定,angular,typescript,Angular,Typescript,您好,我可能在上下文函数绑定方面有问题 这是我的AddDialogComponent,它包含一个FormGroup,其中的代码FormControl由注入的ProductValidator验证: constructor( public productValidator: ProductValidator, //..... code = new FormControl('', [ this.productValidator.validateCodeLength.bind(this.pro

您好,我可能在上下文函数绑定方面有问题

这是我的AddDialogComponent,它包含一个FormGroup,其中的代码FormControl由注入的ProductValidator验证:

constructor(
public productValidator: ProductValidator,
//.....
 code = new FormControl('', [
    this.productValidator.validateCodeLength.bind(this.productValidator),
    this.productValidator.validateCodeUnique.bind(this.productValidator)]);
ProductValidator的功能:

 validateCodeUnique(input: FormControl) {
    const code: string = input.value;
    let isUnique = true;
    this.productService.getAllProducts().forEach((product, key) => {
      console.log(product);
      if (product.code === code) {
        isUnique = false;
      }
    });
    return isUnique ? null : { notUnique: true };
  }
这里
getAllProducts()
返回空映射,但在productService中显示了5个元素。fillMapProducts在初始化时被调用,
console.log
printlns映射中的5项,但稍后在ProductValidator中调用
getAllProducts()
时,它显示映射为空

fillMapProducts(products: ProductAdmin[]): ProductAdmin[] {
        products.forEach(product => this.allProducts.set(product.id, product));
    console.log(this.allProducts(); // 5 elements
      }

      getAllProducts(): Map<number, ProductAdmin> {
        return this.allProducts; // empty map when called inside ProductValidator
   }
fillMapProducts(产品:ProductAdmin[]):ProductAdmin[]{
products.forEach(product=>this.allProducts.set(product.id,product));
console.log(this.allProducts();//5个元素
}
getAllProducts():映射{
返回this.allProducts;//在ProductValidator内调用时为空映射
}

我在前一段时间对此进行了讨论,效果很好-现在我不知道该怎么办-我尝试了一些其他绑定,但没有得到预期的结果。有人能帮忙吗?

在什么级别提供服务?它是在应用程序组件中提供的