Angular 角度上下文绑定
您好,我可能在上下文函数绑定方面有问题 这是我的AddDialogComponent,它包含一个FormGroup,其中的代码FormControl由注入的ProductValidator验证:Angular 角度上下文绑定,angular,typescript,Angular,Typescript,您好,我可能在上下文函数绑定方面有问题 这是我的AddDialogComponent,它包含一个FormGroup,其中的代码FormControl由注入的ProductValidator验证: constructor( public productValidator: ProductValidator, //..... code = new FormControl('', [ this.productValidator.validateCodeLength.bind(this.pro
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内调用时为空映射
}
我在前一段时间对此进行了讨论,效果很好-现在我不知道该怎么办-我尝试了一些其他绑定,但没有得到预期的结果。有人能帮忙吗?在什么级别提供服务?它是在应用程序组件中提供的