Alternatively, you can define price as a calculation either in the markup or on your property. The advantage of this is that it does not require any hours and, presumably, if you send them to the server server, you should probably recount it, given that the user can manipulate this before sending.
Demo: http://plnkr.co/edit/wyiKlybVh94Fr3BDiYiZ?p=preview
Controller:
$scope.project = { hours: 100, rate: 25, price: function() { return this.hours * this.rate; } };
Then:
<input type='number' name='hours' ng-model='project.hours' /> <input type='number' name='rate' ng-model='project.rate' /> <span>{{ project.price() }} OR {{project.hours * project.rate}} </span>
source share