私は、コード最適化というmangleの問題に直面しています。私は角度を使用し、必要とすべてのサービス/工場の場合を除いて正常に働いた。そこにいくつかの例(helloService.coffee)AngulaJs CoffeeScript Grunt
define 'HelloService', [], ->
'use strict'
HS = ($timeout) ->
sayHello: (name) ->
$timeout ->
console.log 'Hello: ' + name
,2000
HS.$inject = ['$timeout']
HS
とコントローラで、私はこのような何かます(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
そして、どのように見えるかapp.coffeeがあります:
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
そしてどこか(main.coffee)
requirejs.config
baseUrl: ''
paths:
angular:['cdn_url','angular_fallback_in_project_dir']
shim:
angular:
exports: 'angular'
deps: []
require ['app'], (app) ->
app.bootstrap()
これはコードを維持しやすくするだけでなく、親しみやすいものです。 私が何かしようとした場合:
hs = new HS()
を、私はhs.saylHello「文字列」を呼び出すことができますが、今$ timeoutは未定義であるか、いつか関数ではありません。 ご協力いただきありがとうございます。