AngularJS: Wie kann ich Servicevariablen beobachten?
Ich habe einen Service, sagen Sie:
factory('aService', ['$rootScope', '$resource', function ($rootScope, $resource) {
var service = {
foo: []
};
return service;
}]);
Und ich würde gerne nutzenfoo
So steuern Sie eine Liste, die in HTML gerendert wird:
<div ng-controller="FooCtrl">
<div ng-repeat="item in foo">{{ item }}</div>
</div>
Damit der Controller erkennt, wannaService.foo
Ich habe dieses Muster zusammengeschustert, indem ich den Controllern einen Service hinzufüge$scope
und dann verwenden$scope.$watch()
:
function FooCtrl($scope, aService) {
$scope.aService = aService;
$scope.foo = aService.foo;
$scope.$watch('aService.foo', function (newVal, oldVal, scope) {
if(newVal) {
scope.foo = newVal;
}
});
}
Das fühlt sich langweilig an und ich habe es in jedem Controller wiederholt, der die Variablen des Dienstes verwendet. Gibt es eine bessere Möglichkeit, gemeinsam genutzte Variablen zu überwachen?