 <p>Why not try wrapping your collection in an object (which acts as a service state) to allow binding to occur on the object, rather than by exposing functions. For example:</p> <pre><code>app.factory('healthService', function() { var state = { healths: [...] }; return { getState: function() { return state; }, updateHealths: function() { state.healths = [...]; } }; }); </code></pre> <p>Then inside your controller:</p> <pre><code>$scope.healthState = healthService.getState(); </code></pre> <p>Then to reference your healths from your html, use:</p> <pre><code>&lt;div ng-repeat="health in healthState.healths"&gt;&lt;/div&gt; </code></pre>