使用route to lazy load controller js,在routeChangeStart add resolve attr to route
$routeProvider.when '/calendar',
templateUrl: 'view/app/schedule/calendar.html', require:['javascript/controller/schedule']
$rootScope.$on('$routeChangeStart', (e, target) ->
route = target && target.$$route
if route && target.require
route.resolve = route.resolve || {}
route.resolve.require = ->
defer = $q.defer()
require target.require, (controller)->
$rootScope.$apply ->
defer.resolve()
defer.promise
)
#javascript/controller/schedule.js
define ['controller','angular-ui-calendar'], ->
'use strict'
#common controller
angular.module('controller')
.controller 'CalendarCtrl',($scope)->
$scope.test='hi'
.controller 'ScheduleCtrl', ($scope)->
$scope.a = 1
#page {{test}},baby not show test
,baby
#if i config controller
$routeProvider.when '/calendar',
templateUrl: 'view/app/schedule/calendar.html', controller: 'CalendarCtrl', require: ['javascript/controller/schedule']
我收到错误:[ng:areq] http://errors.angularjs.org/1.3.0-beta.8/ng/areq?p0=CalendarCtrl&p1=not%20aNaNunction%2C%20got%20undefined