Never worked in angular but I think when you do ng-model="val_1" it makes it into a function that is callable thus you can do $scope.val_1 now you have that for both val_1 and val_2 , not total , so no binding for total it does not know what to , you might need something similar to a computed property to assign total.