如何将订阅的数据绑定到常量部分



我有三个组件,当单击rule-grid.component.ts中的添加按钮时,它将一些数据(例如C#中的会话(带到另一个组件ruleparam-add-model。component.ts通过data-share.ts。在这里,我在ruleparam-add-model.component.ts

的订阅部分中有问题

data-share.ts

export class DataService {
   //binding the data 
    subject: Subject<any> = new Subject<any>();
   //get the binded data 
    observable: Observable<any> = this.subject.asObservable();
  
  constructor() { }
 

ruleparam-add-model.component.ts

 constructor(
        private session: DataService ,
        public dialogRef: MatDialogRef<RuleParameterAddComponent>,
        private formBuilder: FormBuilder,
        private ruleService: RuleParametersService) {
        this.dialogRef.disableClose = true;
        this.ruleParamAddFormGroup = this.formBuilder.group({
            name: ['', [Validators.required]],
            defaultValue:['1', [Validators.required]],
            dataType:['', [Validators.required]],            
        });   
    }
 onAdd() {
        debugger;
        if (this.ruleParamAddFormGroup.valid) {
            const rule = this.ruleParamAddFormGroup.value;
            console.log(JSON.stringify(rule));
            const data = {
                name: rule.name,
                defaultValue:rule.defaultValue,
                dataType:rule.dataType,                
                ruleId:+this.session.observable
                .pipe(filter(Boolean),debounceTime(300))
                .subscribe(
                    ruleId=>this.data.ruleId=ruleId                        
                )
            };
    }

这个问题在ruleparam-add-model.component.ts-&gt;onAdd(( - &gt;规则ID的绑定,其值是从另一个组件接收的。

没有使用@Input和@output的任何更好的方法,将数据从一个组件传输到另一个组件(在这里我需要将ID发送到另一个组件(

好吧,我得到了答案。

方法1:使用单独的dataService,它在C#中作为会话(无汇总(工作。

方法2:

public siteCreateModel:BehaviorSubject<RuleId>= new BehaviourSubject<RuleId>(null);

最新更新