title: Change detection in store.select subscribe requires markForCheck. Why?
body: <p>My app component is having a subscribe on a store select. I set <code>ChangeDetectionStrategy</code> to <code>OnPush</code>.
  I have been reading about how this works; object reference needs to be updated to trigger a change.
  When you use async pipe however, Angular expects new observable changes and do MarkForCheck for you.
  So, why does my code not render the the channels (unless I call <code>MarkForCheck</code>) when the subscribe is triggered and I set the <code>channels$</code> a new observable array of channels.</p>
  
  <pre><code>@Component({
    selector: 'podcast-search',
    changeDetection: ChangeDetectionStrategy.OnPush, // turn this off if you want everything handled by NGRX. No watches. NgModel wont work
    template: `
      &lt;h1&gt;Podcasts Search&lt;/h1&gt;
      &lt;div&gt;
        &lt;input name="searchValue" type="text" [(ngModel)]="searchValue" &gt;&lt;button type="submit" (click)="doSearch()"&gt;Search&lt;/button&gt;
      &lt;/div&gt;
      &lt;hr&gt;
      &lt;div *ngIf="showChannels"&gt;
  
        &lt;h2&gt;Found the following channels&lt;/h2&gt;
        &lt;div *ngFor="let channel of channels$ | async" (click)="loadChannel( channel )"&gt;{{channel.trackName}}&lt;/div&gt;
      &lt;/div&gt;
    `,
  })
  
  export class PodcastSearchComponent implements OnInit {
    channels$: Observable&lt;Channel[]&gt;;
    searchValue: string;
    showChannels = false;
    test: Channel;
  
    constructor(
      @Inject( Store)  private store: Store&lt;fromStore.PodcastsState&gt;,
      @Inject( ChangeDetectorRef ) private ref: ChangeDetectorRef,
    ) {}
  
    ngOnInit() {
  
      this.store.select( fromStore.getAllChannels ).subscribe( channels =&gt;{
        if ( channels.length ) {
          console.log('channels', !!channels.length, channels);
          this.channels$ =  of ( channels );
          this.showChannels = !!channels.length;
          this.ref.markForCheck();
        }
      } );
    }
  </code></pre>
  
  <p>I tried multiple solutions, including using a <code>subject</code> and calling <code>next</code>, but that doesn't work unless I call MarkForCheck.</p>
  
  <p>Can anyone tell me how I can avoid calling <code>markForCheck</code>?</p>