Angular [禁用]:通过另一个组件更改属性的值

Angular [禁用]:通过另一个组件更改属性的值,angular,typescript,Angular,Typescript,只要属性callToActionBtn为true,我的按钮就应该被禁用 匹配组件.html 您不应该在其他组件中编辑组件属性。 创建专用服务: class ExampleService { callToActionBtnSubject = new BehaviorSubject<boolean>(false); setCall(value: boolean): void { this.callToActionBtnSubject.next(value); }

只要属性
callToActionBtn
为true,我的按钮就应该被禁用

匹配组件.html


您不应该在其他组件中编辑组件属性。
创建专用服务:

class ExampleService {
  callToActionBtnSubject = new BehaviorSubject<boolean>(false);
  setCall(value: boolean): void {
    this.callToActionBtnSubject.next(value);
  }
  getCall(): Observable<boolean> {
    return this.callToActionBtnSubject.asObservable();
  }
}
更改主题值而不是组件属性值,它将在subscribes块中进行更新

if (data === 1) {
  this.exampleService.setCall(true);
}
在form组件中,订阅与match组件中类似的主题。 如果要更改表单组件内的值,请与“匹配组件”相同:

this.exampleService.setCall(true) // or false

您不应该在其他组件中编辑组件属性。 创建专用服务:

class ExampleService {
  callToActionBtnSubject = new BehaviorSubject<boolean>(false);
  setCall(value: boolean): void {
    this.callToActionBtnSubject.next(value);
  }
  getCall(): Observable<boolean> {
    return this.callToActionBtnSubject.asObservable();
  }
}
更改主题值而不是组件属性值,它将在subscribes块中进行更新

if (data === 1) {
  this.exampleService.setCall(true);
}
在form组件中,订阅与match组件中类似的主题。 如果要更改表单组件内的值,请与“匹配组件”相同:

this.exampleService.setCall(true) // or false

根据您的问题,调用方法不清楚,但您可以查看以下链接,它可能会帮助您:


还有一件事:您需要告诉您的结构以获得正确的代码,如Angular for communication中使用的不同方法,如viewChildViewChildren等。

根据您的问题,调用方法不清楚,但您可以查看以下链接,它可能会帮助您:


还有一件事:您需要告诉您的结构,以获得正确的代码,如Angular for communication中使用的不同方法,如viewChildViewChildren等。

尝试使用viewChild:组件是如何放置的?表单组件和匹配组件之间是否存在父子关系?请分享示例Show Structure或示例stackblitz链接尝试使用ViewChild:组件的放置方式?表单组件和匹配组件之间是否存在父子关系?请共享示例Show Structure或示例stackblitz链接