Skip to content

Commit

Permalink
Add a controller that will watch for a stream to get set on the scope…
Browse files Browse the repository at this point in the history
… as eventStream. We then subscribe to the stream and update scope variables based on events.
  • Loading branch information
Josh Graber committed Nov 4, 2015
1 parent 5194111 commit 60564be
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
3 changes: 3 additions & 0 deletions js/controllers/controllers.module.js
Expand Up @@ -2,7 +2,10 @@

var angular = require('angular');

var eventConsumerModule = require('./eventConsumer/eventConsumer.controller');

exports.moduleName = 'exp-ang.controllers';

angular.module(exports.moduleName, [
eventConsumerModule.moduleName,
]);
31 changes: 31 additions & 0 deletions js/controllers/eventConsumer/eventConsumer.controller.js
@@ -0,0 +1,31 @@
'use strict';

var angular = require('angular');

exports.moduleName = 'exp-ang.controllers.eventConsumer';
exports.controllerName = 'EventConsumerController';

EventConsumerController.$inject = ['$scope'];
function EventConsumerController($scope) {
var self = this;
var oldSubscription;

self.hitCount = 0;

$scope.$watch('eventStream', function(newValue) {
if (oldSubscription) {
oldSubscription.dispose();
}

oldSubscription = newValue.subscribe(function(data) {
$scope.$apply(function() { self.hitCount++; });
}, function(error) {
$scope.$apply(function() { self.error = error; });
}, function() {
$scope.$apply(function() { self.finished = true; });
});
});
}

angular.module(exports.moduleName, [])
.controller(exports.controllerName, EventConsumerController);

0 comments on commit 60564be

Please sign in to comment.