You are making stuff too complicated. What you want do is simple.
Make the following changes
in html
<div ng-click='getID(dish)' class="heart"></div>
in controller
$scope.getID = function(dish){
//Ideally dish.like++ would be done here itself to give instant feeling
like ={
"id": dish.id,
"like": dish.like
};
$scope.updateLike(like, dish);
};
$scope.updateLike = function(like, dish){
$http.post("php/updateLike.php",like)
.success(function(data){
dish.like=data.like;//under the impression the response have like count;
}
).error(function(data){
//and do dish.like-- if an error happens.
});
};