JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="http://cdn.ensialumni.com/themes/default/components/bootstrap/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="http://cdn.ensialumni.com/themes/default/components/bootstrap/bootstrap/css/bootstrap-responsive.min.css">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.5/angular.min.js"></script>
<script src="https://code.angularjs.org/1.0.5/angular-resource.min.js"></script>
<div ng-app="app">
<div ng-controller="divController">
<table class="table">
<tr>
<th>Description</th>
<th>Qty</th>
<th>Cost</th>
<th>Total</th>
<th></th>
</tr>
<tr ng-repeat="item in cart">
<td><input type="text" ng:model="item.description"class="input-small" /></td>
<td><input type="number" ng-model="item.qty" class="input-mini"/></td>
<td><input type="number" ng-model="item.cost" clas="input-mini" /></td>
<td>{{item.qty * item.cost | currency}}</td>
<td>
<button ng-click="removeItem(item)">Remove</button>
</td>
</tr>
</table>
</div>
</div>
JavaScript
app = angular.module('app', ['ngResource']);
app.controller('divController', function($scope){
$scope.cart={"4": {"cost": 802.85, "description": "test", "qty": 1}, "5": {"cost": 802.85, "description": "test", "qty": 1}};
$scope.removeItem = function(item) {
var newCart = {};
angular.forEach($scope.cart, function(value, key) {
if(value != item)
newCart[key]=value;
});
$scope.cart = newCart;
};
})