Ich stehe vor einem Problem für die Code-Optimierung, dh mangle. Ich benutze eckige und erfordern und alles hat gut funktioniert, außer in Service/Fabrik Fall. Es gibt einige Beispiele (helloService.coffee)AngulaJs CoffeeScript Grunt
define 'HelloService', [], ->
'use strict'
HS = ($timeout) ->
sayHello: (name) ->
$timeout ->
console.log 'Hello: ' + name
,2000
HS.$inject = ['$timeout']
HS
Und in Controller ich so etwas wie dies zu machen: (mainController.coffee)
define 'MainController', ['HelloService'], (HS) ->
'use strict'
MC = ($scope) ->
HS.sayHello 'Stack Overflow' # it return sayHello is not a function
# do something with scope here
MC.$inject = ['$scope']
MC
Und es ist, wie app.coffee wie folgt aussehen:
define 'app', ['angular', 'HelloService', 'MainController'],(angular, HelloService, Maincontroller)->
app = angular.module 'app', []
app.service 'helloService', HelloService
app.controller 'mainController', MainController
app.bootstrap = ->
angular.element(document).ready ->
angular.bootstrap document, ['app']
app
Und irgendwo (main.coffee)
requirejs.config
baseUrl: ''
paths:
angular:['cdn_url','angular_fallback_in_project_dir']
shim:
angular:
exports: 'angular'
deps: []
require ['app'], (app) ->
app.bootstrap()
Dieser Keep-Code ist einfacher zu pflegen und es ist wirklich mimifikationsfreundlich. Wenn ich versuche, so etwas wie:
hs = new HS()
Dann kann ich hs.saylHello ‚String‘ nennen, aber jetzt $ timeout undefiniert oder irgendwann ist nicht funktionieren. Vielen Dank im Voraus für Ihre Hilfe.