title: ngFor shows empty items after array.push
body: <p>I have this in my template:</p>
  
  <pre><code>&lt;input type="button" value="add" (click)="addEnvVar()"/&gt;
  &lt;div *ngFor="let envVar of application.env_vars"&gt;
      &lt;input type="text" name="key" [(ngModel)]="envVar.key"&gt;
      &lt;input type="text" name="value" [(ngModel)]="envVar.value"&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p>The code behind <code>addEnvVar()</code>:
  <code>this.application.env_vars.push({key:'', value:''});</code></p>
  
  <p>When the component is initialized, there is one object inside <code>env_vars</code> and it is rendered just fine (the <code>&lt;input&gt;</code> fields are populated). After I click 'add', I can see in console that there are indeed two objects inside env_vars (the second is the 'empty' object I just added), and in the view there are indeed two <code>&lt;div&gt;</code>s for each <code>envVar</code>, but all 4   <code>&lt;input&gt;</code> fields <strong>are empty</strong>.</p>
  
  <p>What am I doing wrong?</p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>I think the problem is that when <code>ngFor</code> produces more than one <code>div</code>, the inputs in each <code>div</code> all get the same hard-coded <code>name</code> attribute (in my case - "key" and "value"), and the value is somehow attached to that. I changed <code>name="key"</code> to <code>name="key_{{i}}"</code> (<code>i</code> is a template variable holding the <code>ngFor</code> index property).</p>
  
  <p>Question is, is this the way to go? Or am I still missing something?</p>