Angular Services in CoffeeScript
This jsbin demonstrates how to use a CoffeeScript class to implement an Angular Service, using Service, Factory and Provider styles. You may have to click “Run with JS” to update Output pane. Download gist from github.
Update: by itself this is not enough, since services usually have to inherit other resources, and look something like this:
angular.module("app") .service('thumbService', ['$log', '$q', ($log, $q) -> ...
A working example (using .factory instead of .service) from the angular-grunt-coffeescript seed app:
### Example of a service shared across views. Wrapper around the data layer for the app. ### name = 'common.services.dataSvc' class DataSvc constructor: (@$log, @$http, @env) -> _get: (relPath)-> return @$http.get("#{@env.serverUrl}/#{relPath}") getPeople: () -> return @_get('people') getPerson: (id) -> return @_get("person/#{id}") angular.module(name, []).factory(name, ['$log','$http', 'common.services.env', ($log, $http, env) -> new DataSvc($log, $http, env) ])
hi peterk thank’s for this article,
I’m currently writing https://github.com/ranska/rang https://github.com/ranska/aether who is a little lib focus on coffee script class layer for angular. I try to find people who can tell me if there is thing’s they like, want to be add or remove from it.
Could you please give me your point of view on it.