Поведение является правильным, потому что в addNew вы добавляете 1 пустую запись в цикле применения, которая затем будет переупорядочивать список.
У вас есть 2 способа пойти: 1) При добавлении нового элемента создайте вспомогательный объект ипосле отправки добавьте его в список:
$scope.addNew = function(data) {
$scope.newItem ={
data1: "",
data2: ""
};
};
$scope.save = function() {
$scope.table.push($scope.newItem);
};
Таким образом, существует множество проблем, а не смешивать основной список.
Или, если вы все еще хотите добавить его в основной список напрямуюкоторый я не рекомендую, вы можете реализовать свой собственный фильтр, который всегда держит пустые данные наверху - в вашем методе предиката.