将输入信号与其他信号组合

问题描述 投票:0回答:1

我第一次实现带有信号的自定义表单控件。

我想要一个可用于禁用该组件的输入。但是,由于它还支持 setDisabledState 方法,因此我需要能够在某处设置disabledState。

这是我目前的做法。

  private disabled = input<boolean>(false);
  private disabledCall = signal<boolean>(false)
  public disable = computed(() => this.disabled() || this.disabledCall())

  setDisabledState(isDisabled: boolean): void {
    this.disabledCall.set(isDisabled)
  }

与非基于信号的方法相比,这感觉很糟糕。

@Input()
public disabled = false;

setDisabledState(isDisabled: boolean): void {
   this.disabled = isDisabled
}

我可以做些什么来改进基于信号的版本吗?

angular signals
1个回答
0
投票

17.2 引入了模型输入,您可以利用它们是可写输入信号的事实。

  private disabled = model<boolean>(false);

  setDisabledState(isDisabled: boolean): void {
    this.disabled.set(isDisabled)
  }
© www.soinside.com 2019 - 2024. All rights reserved.