Skip to content

Commit

Permalink
remove model from $rootScope
Browse files Browse the repository at this point in the history
event based model update
  • Loading branch information
ProZachJ committed Feb 8, 2013
1 parent f002bf8 commit 3fcf392
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 14 deletions.
14 changes: 13 additions & 1 deletion js/controllers/serverCtrl.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
var serverCtrl = function($scope, server, socket){
$scope.serverstate = 'Not Listening';
$scope.data = server.data;


$scope.listen = function (){
Expand All @@ -16,8 +17,19 @@ var serverCtrl = function($scope, server, socket){
$scope.sendResponse = function(){
if ($scope.data.length > 0){
server.sendResponse($scope.acceptInfo);
$scope.data = [];
}
};


$scope.$on( 'Server.request', function( event, acceptInfo, request ) {
console.log(acceptInfo, request);
$scope.acceptInfo = acceptInfo;
$scope.data = request;
//registers the change in data
if(!$scope.$$phase) {
$scope.$apply();
}
});
};

serverCtrl.$inject = ['$scope', 'server', 'socket'];
20 changes: 7 additions & 13 deletions js/services/server.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
App.factory('server', function($rootScope, socket){
//need to add helper functions for dealing with responses etc maybe should be another service.
var socketInfo;
$rootScope.data = [];

var stringToUint8Array = function(string) {
var buffer = new ArrayBuffer(string.length);
Expand All @@ -22,6 +21,10 @@ App.factory('server', function($rootScope, socket){
};

var server = {

data: [],

acceptInfo: {},

sendResponse: function (acceptInfo){
var header = stringToUint8Array("HTTP/1.0 200 OK"+
Expand All @@ -32,31 +35,22 @@ App.factory('server', function($rootScope, socket){
socket.write(acceptInfo.socketId, outputBuffer, function(writeInfo) {
console.log("WRITE", writeInfo);
socket.destroy(acceptInfo.socketId);
$rootScope.data = [];
if(!$rootScope.$$phase) { //this is used to prevent an overlap of scope digestion
$rootScope.$apply(); //this will kickstart angular to recognize the change
}
socket.accept(socketInfo.socketId, server.onAccept);
});
},

onAccept: function(acceptInfo) {
$rootScope.acceptInfo = acceptInfo;

console.log("ACCEPT", acceptInfo);
// Read in the data
socket.read(acceptInfo.socketId, function(readInfo) {
console.log("READ", readInfo);
// Parse the request.

var request = arrayBufferToString(readInfo.data);
$rootScope.data = request;
console.log(request);
$rootScope.$broadcast( 'Server.request', acceptInfo, request );
//parse data
console.log($rootScope.data);

if(!$rootScope.$$phase) { //this is used to prevent an overlap of scope digestion
$rootScope.$apply(); //this will kickstart angular to recognize the change
}


//send response
});
Expand Down

0 comments on commit 3fcf392

Please sign in to comment.