Angular @Input()值的角度2频率

Angular @Input()值的角度2频率,angular,Angular,我有一个子组件,它通过@Input()接收一些值: [required]传递isRequired()方法的返回值,如您所见。 但它可能会变得非常缺乏性能,所以我想限制它被查询的频率 有没有办法配置angular调用的频率isRequired()?没有,没有办法。Angular为父组件创建一个工厂,该工厂包含MyComponent,具有updateDirectives功能,在检查父组件时,在每个更改检测周期调用该功能。详情请阅读。不能专门为绑定禁用更改检测。如果拆下更改检测器,则不会执行任何更

我有一个子组件,它通过
@Input()
接收一些值:


[required]
传递
isRequired()
方法的返回值,如您所见。 但它可能会变得非常缺乏性能,所以我想限制它被查询的频率


有没有办法配置angular调用的频率
isRequired()

没有,没有办法。Angular为父组件创建一个工厂,该工厂包含
MyComponent
,具有
updateDirectives
功能,在检查父组件时,在每个更改检测周期调用该功能。详情请阅读。不能专门为绑定禁用更改检测。如果拆下更改检测器,则不会执行任何更改

您可能要做的是在父组件上创建一个提供者服务,并让您的子组件
MyComponent
component将其注入,并在需要时查询
isRequired
。大致如下:

@Component({template: `<my-component...>`, provider: [SomeService]})
export class ParentComponent {}

@Component({})
export class MyComponent {
  constructor(service: SomeService) {
    service.isRequired();
  }
}
@组件({template:`,provider:[SomeService]})
导出类ParentComponent{}
@组件({})
导出类MyComponent{
构造函数(服务:SomeService){
service.isRequired();
}
}

您可以使用
observatable
吗?或者您需要将一些遗留代码(Angular 1)迁移到Angular 4,而不能在过程中过早使用
observatable
?这里的一些信息可能会有所帮助:@andreim我不迁移<代码>可观察的就可以了,我想。“但我不知道这会导致什么结果。”黛博拉克说,我读到了关于变化检测的文章。但据我所知,这是关于子组件如何处理
isRequired()
返回值中的更改。我认为调用了
isRequired()
,结果由变更检测处理。但是现在太晚了<代码>isRequired()已执行。如果我错了,请纠正我。@Reynicke您有几种数据架构可用于角度:1)传递输入和输出;2) 通过观测值;3) 雷杜。请注意,3)Redux可用于观察副作用,因此具有。根据您的用例(您的应用程序有多复杂…),您可以在这些架构之间进行选择。
@Component({template: `<my-component...>`, provider: [SomeService]})
export class ParentComponent {}

@Component({})
export class MyComponent {
  constructor(service: SomeService) {
    service.isRequired();
  }
}