title: Changes detection doesn't work properly in Angular2
body: <p>In ngOnInit() I have a subscription on a Subject, which sends new data when I get a new response in my service from the EventSource:</p>
  <pre><code>this._orderService.onNewOrderLoaded$
    .subscribe(order =&gt; {
      this.orders.push(order)
      this.orders.sort((a, b) =&gt; b.id - a.id)
      this.orders = this.orders.slice()
      this.notify()
    })
  
  this._orderService.openSSEConnection()
  </code></pre>
  <p>In my template I have a simple table, that displays orders:</p>
  <pre><code>&lt;tr *ngFor=&quot;let order of orders&quot;&gt;
  ...
  &lt;/tr&gt;
  </code></pre>
  <p>But component doesn't rerender when in subscription in <code>ngOnInit()</code> I get new orders and change orders' model using <code>.slice()</code>. So I detect changes manualy using <code>this._ref.detectChanges()</code>. It is the first question: How can I rerender component without <code>detectChanges()</code> when I get a new order in subscription?</p>
  <p>And the seconds problem is that when I use <code>detectChanges()</code> and rerender table of orders, <code>(click)</code> method doesn't update model of new order too. <code>(click)</code> of <code>&lt;td&gt;&lt;/td&gt;</code> calls function:</p>
  <pre><code>viewOrder(order: Order) {
      this.selectedOrder = { ...order }
      this.isInfoModalOpened = true
  }
  </code></pre>
  <p>This function changes <code>isInfoModalOpened</code> and <code>selectedOrder</code> so modal component can be displayed:</p>
  <pre><code>&lt;app-modal-component *ngIf=&quot;isInfoModalOpened&quot; [order]=&quot;selectedOrder&quot;&gt;
  </code></pre>
  <p>But it doesn't work too, so or I need to call <code>detectChanges()</code> manualy or I need to click on some element, that will cause changes detection.</p>