angularjs,当我想延迟加载控制器js时,得到错误

时间:2014-08-20 03:22:51

标签: javascript angularjs requirejs

使用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

0 个答案:

没有答案