Или используйте $ каждый модификатор с помощью $ addToSet:
https://docs.mongodb.com/manual/reference/operator/update/addToSet/#each-modifier
blockquote>// Existing tags array { _id: 2, item: "cable", tags: [ "electronics", "supplies" ] } // Add "camera" and "accessories" to it db.inventory.update( { _id: 2 }, { $addToSet: { tags: { $each: [ "camera", "accessories" ] } } } )
Вы должны подписаться на него. Прямо сейчас вы регистрируете сам объект Observable, но вам нужно подписаться на него, чтобы, когда он будет разрешен, ваша подписка прослушала его и распечатала все, что разрешает.
Если вы не хотите подписываться, вы можете получить наблюдаемое значение, используя async
и await
, но для этого вам нужно преобразовать Observable
в `Обещание.
Примерно так:
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
public loggedin: boolean;
public otherValue: boolean;
constructor(private auth: AuthenticationService) { }
async ngOnInit() {
this.loggedin = await this.auth.$isLoggedinSource.toPromise();
this.otherValue = await this.auth.$otherObservable.toPromise();
}
}
Вы должны подписаться на наблюдаемые, чтобы получить данные.
this.$loggedin.subscribe((data: boolean) =>
{
console.log('am i logged in ', data);
}
Есть два способа, которыми вы можете использовать, чтобы развернуть значение Observable.
Используя трубу async
в вашем шаблоне:
<p>Am I logged In: {{ $isLoggedinSource | async }}</p>
ИЛИ [1116 ]
subscribe
Обнаруживаемому в вашем Компоненте: import { Subscription } from 'rxjs';
...
subscription: Subscription;
...
this.subscription = this.$loggedin
.subscribe(data => console.log('am i logged in ', data));
...
ngOnDestroy() {
this.subscription.unsubscribe();
}
Если это $loggedin
Observable повторяется, и вы используете подход 2, затем вам нужно будет присвоить его типизированному свойству Subscription
и затем вызвать unsubscribe
для него внутри ngOnDestroy
.
При первом подходе вам не обязательно делать это.