Writing Angular factory with CoffeeScript Class style

angularjs, angularjs-factory, coffeescript, javascript

Solution

There's so little code in that factory, I don't really understand the point of making it a Class.

app = angular.module("app", ["ngResource", "ngRoute"])

app.factory "Notes", ["$resource", ($resource) ->
    $resource("/notes/:id", null, { update: { method: "PUT" } })
]

But having said that, if you want to use coffeescript classes for services in general (it doesn't work well with factories since they're singletons), you can do something like this:

class Foo
  constructor: ($someDependency) ->
    @myVar = "hello"

  bar: ->
    console.log @myVar

app.service("Foo", ['$someDependency', Foo])

Problem

Recently I am trying to learn AngularJs and CoffeeScript by writing a small app. After reading some blogs I can write Angular controller and service with CoffeeScript Class style. The following is a example of controller. ``` libr = angular.module('libr.controllers.main', []) class MainController @$inject: ['$scope'] constructor: (@$scope) -> @$scope.test = test test: ()-> console.log 'Hello' libr.controller 'MainCtrl', MainController ``` And it works well. But I can't convert a Angular factory as following successfully with using Coffee Class style. ``` var app = angular.module('app', ['ngResource', 'ngRoute']); // Some APIs expect a PUT request in the format URL/object/ID // Here we are creating an 'update' method app.factory('Notes', ['$resource', function($resource) { return $resource('/notes/:id', null, { 'update': { method:'PUT' } }); }]); ``` This code is a example code from AngularJs official website:http://docs.angularjs.org/api/ngResource.$resource Could anyone help me to convert it to CoffeeScript Class style?

Original source