I'm assembling my first AngularJS app. I define a service that uses $resource to make a REST service call. I inject that service into my controller and make a query on it, and I wrap that in the $interval service to call it once every 5 minutes. At least that's what I'm intending. When I run this with firebug I suddenly see a gazillion requests to the REST service. I must be misunderstanding something.
Here's my elided HTML: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" > "http://www.w3.org/TR/html4/loose.dtd"> > <html ng-app="DiagApp"> > <head> > <meta http-equiv="Content-Type" content="text/html; > charset=ISO-8859-1"> > <title>Diagnostics</title> > <link > href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" > rel="stylesheet"> > </head> > <body ng-controller="DiagCtrl"> > <h1>Diagnostics</h1> > <tabset> > <tab heading="Data Sources"> > <div ng-repeat="dataSource in dataSources"> > </div> > </tab> > <tab heading="Queries"> > </tab> > <tab heading="Handlers"> > </tab> > <tab heading="Workflow Mappings"> > </tab> > <tab heading="Performance Thresholds"> > </tab> > <tab heading="Configuration"> > </tab> > </tabset> > <script > src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular.js"></script> > <script > src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.10/angular-resource.js"></script> > <script src="/js/app/diagapp.js"></script> > <script src="/js/app/libs/ui-bootstrap-tpls-0.10.0.js"></script> > </body> > </html> > Here's my elided diagapp.js: var diagapp = angular.module("DiagApp", ['ui.bootstrap', 'ngResource']); > > diagapp.factory('DataSources', ['$resource', function($resource) { > return > $resource('http://<hostportandpath>/service/diagnostics/datasourceStatus.json', > > {}, {}); > }]); > > diagapp.controller("DiagCtrl", ['$scope', '$interval', 'DataSources', > function($scope, $interval, DataSources) { > var datasourcesInterval = $interval(function() { > $scope.dataSources = DataSources.query(function() { > }, 300000); > }); > $scope.$on('$destroy', function() { > $interval.$cancel(datasourcesInterval); > }); > }]); > > What particular dumb mistake am I making that is making it call the service much more than I expect? -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/groups/opt_out.
