Edit in JSFiddle

<div ng-app="myapp" ng-controller="mycontroller as ctrl">
    <div>未使用 track by,按下重新取得之後就會重新產生DOM</div>
    <table border="1">
        <tr><td>id</td><td>$$hashKey</td></tr>
        <tr ng-repeat="n in ctrl.note">
            <td ng-bind="n.id"></td><td ng-bind="n.$$hashKey"></td>
        </tr>
    </table>
    <input type="button" ng-click="ctrl.red()" value="設定第二筆為紅色" />     
    <input type="button" ng-click="ctrl.reload()" value="重新取得" />
    <p>======================================</p>
    <div>使用 track by,按下重新取得之後會使用原有DOM</div>
    <table border="1">
        <tr><td>id</td><td>$$hashKey</td></tr>
        <tr ng-repeat="m in ctrl.note2 track by $index">
            <td ng-bind="m.id"></td><td ng-bind="m.$$hashKey"></td>
        </tr>
    </table>
    <input type="button" ng-click="ctrl.red2()" value="設定第二筆為紅色" />     
    <input type="button" ng-click="ctrl.reload2()" value="重新取得" />        
</div>    


 
angular.module("myapp",[]).controller("mycontroller",[function(){
     var self = this;
     function getnote() {
         var note = [
             { id: 1 },
             { id: 2 },
             { id: 3 },
             { id: 4 }            
         ]
         return note;
    }
    
    self.note = getnote();
    self.note2 = getnote();  
    
    //重新取得
    self.reload = function() {
        self.note = getnote();
    }
    self.reload2 = function() {
        self.note2 = getnote();
    }    
    //顏色標記
    self.red = function() {
        $("table:eq(0) tr:eq(2)").css("background","red");
    }
    self.red2 = function() {
        $("table:eq(1) tr:eq(2)").css("background","red");
    }    
}]);