UNPKG

generator-angular-material-fullstack

Version:

Yeoman generator for creating MEAN stack applications, using MongoDB, Express, AngularJS, and Node

68 lines (51 loc) 1.67 kB
# global io 'use strict' angular.module '<%= scriptAppName %>' .factory 'socket', (socketFactory) -> # socket.io now auto-configures its connection when we omit a connection url ioSocket = io '', # Send auth token on connection, you will need to DI the Auth service above # 'query': 'token=' + Auth.getToken() path: '/socket.io-client' socket = socketFactory ioSocket: ioSocket socket: socket ### Register listeners to sync an array with updates on a model Takes the array we want to sync, the model name that socket updates are sent from, and an optional callback function after new items are updated. @param {String} modelName @param {Array} array @param {Function} callback ### syncUpdates: (modelName, array, callback) -> ### Syncs item creation/updates on 'model:save' ### socket.on modelName + ':save', (item) -> oldItem = _.find array, _id: item._id index = array.indexOf oldItem event = 'created' # replace oldItem if it exists # otherwise just add item to the collection if oldItem array.splice index, 1, item event = 'updated' else array.push item callback? event, item, array ### Syncs removed items on 'model:remove' ### socket.on modelName + ':remove', (item) -> event = 'deleted' _.remove array, _id: item._id callback? event, item, array ### Removes listeners for a models updates on the socket @param modelName ### unsyncUpdates: (modelName) -> socket.removeAllListeners modelName + ':save' socket.removeAllListeners modelName + ':remove'