It's obvious: you need to bind objects and percentages.
In HTML:
<div class="col-md-3" data-ng-repeat="o in objects">
<h5>{{o.name}}</h5>
<div class="progress progress-striped active">
<div ng-style="{width : ( o._percentage + '%' ) }" aria-valuemax="100" aria-valuemin="0" aria-valuenow="{{o._percentage}}" role="progressbar" class="progress-bar">
</div>
</div>
<button class="btn btn-primary" type="button" data-ng-click="someWork()">ClickMe</button>
</div>
I'm not sure how you can bind it with backends reports, but something like that should be in your code:
this.proxy.client.updateProgress = (value) => {
// I don't know how to bind event with related_object, you should know
$scope.$apply($scope.objects[related_object]._percentage = value);
}