Ich habe eine Fabrik, die eine SubCon $ Ressource für eine erholsame API erstellt.
app.factory("SubCon", function($resource) {
return $resource("http://localhost:8010/api/subcontractors/:id");
})
Ich habe einen Controller bekam, die diesen Dienst verwendet, und geht direkt das Versprechen zurück durch den Dienst zu einem ng-repeat abfragt. Hier
//in the controller
$scope.partners = this.SubCon.query();
ist die Wiederholung in der Vorlage:
<tr ng-repeat="partner in partners">
<td>{{partner.id}}</td>
<td>{{partner.name}}</td>
<td>?</td>
<td>?</td>
<td>---</td>
<td>?</td>
</tr>
Dies funktioniert gut und gibt, was ich erwarte. So haben wir eine Politik gegen die Verwendung von $ scope so dass ich den Controller und Vorlage wie folgt Refactoring:
//in the controller
this.getPartners = function() {
return this.SubCon.query();
}
Und die Vorlage:
<tr ng-repeat="partner in ctrl.getPartners()">
<td>{{partner.id}}</td>
<td>{{partner.name}}</td>
<td>?</td>
<td>?</td>
<td>---</td>
<td>?</td>
</tr>
Jetzt
wenn ich diesen Code mit Winkel 1.5.8 Ich betreibe Erhalte einen Digest-Fehler, wie unten zu sehen ist.
Also was fehlt mir. Warum funktioniert das mit $ scope und ohne eine Methode auf dem Controller?
angular.js:13920 Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: []
http://errors.angularjs.org/1.5.8/$rootScope/infdig?p0=10&p1=%5B%5D
at angular.js:68
at Scope.$digest (angular.js:17562)
at Scope.$apply (angular.js:17790)
at done (angular.js:11831)
at completeRequest (angular.js:12033)
at XMLHttpRequest.requestLoaded (angular.js:11966)(anonymous function) @ angular.js:13920
angular.js:17793 Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: []
http://errors.angularjs.org/1.5.8/$rootScope/infdig?p0=10&p1=%5B%5D