Does the lack ngZone is responsible for not updating the view side?

Hi all!

I’m curious why a part of my view doesn’t update after the model has been changed. So my view is using the async pipe to subscribe into an observable and creates a list. If this observable is got updated then for some reason, the view doesn’t updated.

Here is the example of my view:

<ng-container *ngFor="let device of devices | async">
      <ion-item *ngIf="device.name">
        <ion-label>
          <h2>{{device.name}}</h2>
          <h3>{{device.address}}</h3>
          <p>{{device.rssi}}</p>
        </ion-label>
        <ion-button *ngIf="!device.isConnected" size="small" color="primary" item-right (click)="connect(device.address)">Connect <ion-icon name="bluetooth"></ion-icon></ion-button>
        <ion-button *ngIf="device.isConnected" size="small" color="success" item-right >Connected</ion-button>
      </ion-item>
    </ng-container>

and here is the code that updates the devices observable inside a service:

private setConnected(address, isConnected: boolean) {
    const currentValue = this.devices$.getValue();
    const newValue = currentValue.map( e => {
      if (e.address === address) {
        e.isConnected = isConnected;
      }
      return e;
    });

    this.devices$.next(newValue);
  }

Is this due to the lack of ngZone or am I doing something wrong? If it due to ngZone, where am I suppose to use it? In the view or in the service ? Can you give me an example?