我有一个具有两个输入属性的 Angular 组件。我想在设置两个属性时调用一个方法,是否有任何事件可以使用?
export class ProductComponent implements OnInit {
_product: Product;
@Input() set product(value: Product) {
_product = value;
}
_attributeType: any;
@Input() set attributeType(value: any) {
_attributeType = value;
this.doSomeWorkWhenBothProductAndAttributeTypeAreSet();
}
doSomeWorkWhenBothProductAndAttributeTypeAreSet() {
}
}
在上面的代码示例中,当已经分配了产品和属性类型时,我想调用dosomeworkfwhentbothproductandattributetypeareset()。我尝试在设置第二个属性后调用该方法,但有时产品需要更长的时间来分配,因此无法按预期工作。
Angular有一些lyfecycle钩子,只能在确定的时刻用于执行部分逻辑,这是组件具有的每个生命周期钩子的列表:
现在,angular第一次在< code>ngOnInit之前调用< code>ngOnChanges,以允许您使用Init上的值访问< code>@Input()变量。说你有两种主要的方法来实现你的目标:
public ngOnChanges(changes: SimpleChanges): void {
// you can check here if your props are set and if so call your method
console.log(changes['YOUR_PROP'].currentValue);
}
注意,这个方法将在每次@Input()属性更新时被调用
public ngOnInit(): void {
// here you can access your props since angular has called onChanges before and has already initialized them
}
您可以实现 OnChanges
接口以检查对输入属性的更改,并根据此添加一些逻辑。
export class ProductComponent implements OnInit, OnChanges {
@Input() set product(value: Product) {
_product = value;
}
_attributeType: any;
@Input() set attributeType(value: any) {
_attributeType = value;
}
ngOnChanges(simpleChange: SimpleChanges) {
if (this._attributeType && this._product) {
this.doSomeWorkWhenBothProductAndAttributeTypeAreSet();
}
// or check simpleChange to retrieve some informations :
// - new value
// - previous value
}
doSomeWorkWhenBothProductAndAttributeTypeAreSet() {
}
}
有关官方文档的更多详细信息
问题内容: 在Swift中,我尝试执行以下操作: Xcode 在方法中在线上报告错误。 为什么?如果将结构更改为类,则不会出错。 问题答案: 如果要修改结构的属性,请将该函数标记为mutating。
得到的数据值不是一个有效的属性
我正在开发一个移动应用程序,现在我正在进行身份验证。在我访问我的主页之前,我需要访问我构建的API上的各种endpoint,然后才能向用户显示数据。 在Postman中测试时,所有endpoint都返回了正确的数据,但是当我在应用程序中使用它时,我在第二次异步调用中得到了一个值。 我确信这与这些呼叫的顺序有关,所以我只是在寻找一些帮助,如何在开始另一个呼叫之前正确地等待一个呼叫完成。
问题内容: 我试图在此查询上建立一点点。我正在搜索的索引也有一个带有ID的“实体”字段。因此,根据实体的ID,一些记录将具有“实体”:16,“实体” 156等。我需要以一种可以传递数组或值列表的方式来扩展此查询,例如{:term => {:entity => [1,16,100]}}},并获取具有以下内容的记录:这些整数之一作为其实体值。到目前为止我还没有运气,有人可以帮我吗? 问题答案: 使用代
我正在修改一个现有的Angular项目(不是我的),向我的外部API添加一个新的调用。 这是服务方法: 我把它用在appcomponent.ts如下: 执行时出现以下错误: node_modulesERROR TypeError:无法在node_modules读取null的属性“长度”。/map.js.MapOperator.call/@角/公共/费斯姆5/node_modules更新(_subs