我们可以连接字符串和可观察值并作为输入参数传递吗

Can we concatenate string and observable value and pass as input parameter

我有一个子组件需要来自其父组件的字符串输入参数。我想从父级传递一个 observable 以及其他字符串数据。 我们如何在不设置 component.ts 值的情况下做到这一点?需要在 component.html 中做这样的事情 谢谢

和你描述的完全一样。

在父组件中定义一个 Observable 和一个字符串

myObservable: BehaviorSubject<string> = new BehaviorSubject<string>('');
myString = '';

将其传递给您的子组件

<child-component [myObservable]="myObservable" [myString]="myString"></child-component>

然后在您的子组件中等待传递这些值。

@Input() myObservable: BehaviorSubject<string> = new BehaviorSubject<string>('');
@Input() myString = '';

实际上就是这样。

Observable 现在可以在两个组件之间工作。

变体 2 :: 分组

当你想把它全部放在一个地方时,你必须定义一个对象。

class AllTogether {
    myObservable: BehaviorSubject<string>;
    myString: string;
}

在你的父组件中实例化它

allTogether = new AllTogether();
allTogether.myObservable = new BehaviorSubject<string>('');
allTogether.myString = '';

将其传递给您的子组件

<child-component [allTogether]="allTogether"></child-component>

然后在您的子组件中等待传递对象。

class AllTogether {
    myObservable: BehaviorSubject<string>;
    myString: string;
}

@Input() allTogether = new AllTogether();

然后访问值

this.allTogether.myObservable.subscribe( /* do something */)