title: Angular trackBy not working in nested *ngFor
body: <p>My component is some what like</p>
  
  <pre><code>&lt;div class="users-list" *ngIf="datasetPermission !== undefined"&gt;
      &lt;div *ngFor="let userpermission of datasetPermission; trackBy : trackByFn"&gt;
        &lt;span *ngFor="let user of userpermission.users"&gt;
          &lt;span *ngIf="user"&gt;
          &lt;span class="shared-user"&gt;&lt;span&gt;{{user.emailId}}&lt;/span&gt;&lt;span &gt;&lt;span  class="close icon-key" style=" padding: 0;" (click)="viewPermission($event,userpermission.permissionType,user)"&gt;&lt;/span&gt;&lt;span class="close" style=" padding: 0;" (click)="removeUser(user)"&gt;×&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
        &lt;/span&gt;
        &lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  </code></pre>
  
  <p>trackBy function as</p>
  
  <pre><code>    public trackByFn(index, userpermission) {
        console.log(userpermission.permissionType);
        return userpermission.permissionType;
      }
  </code></pre>
  
  <p>Inside permissions I've array of users who are assigned to this permission.I can update users from x &lt;> y permission set.
  when I'm updating the datasetPermission array or adding new element to it it is updating the order of dataset being updated/added.</p>
  
  <p>I've gone through various posts but yet to find something useful.
  Am I doing something incorrect here? Any help would be appreciated.</p>