使用TypeScript时未知的提供程序$ ocLazyLoad

时间:2015-08-05 00:10:06

标签: angularjs typescript angular-ui-router oclazyload

我正在尝试使用TypeScript在Angular.js中使用$ocLazyLoad。但是我一直在Unknown provider error。我将它包含在我的主要应用程序中:

index.module.ts

/// <reference path="../../.tmp/typings/tsd.d.ts" />
/// <reference path="index.route.ts" />
/// <reference path="index.config.ts" />
/// <reference path="index.run.ts" />

module myApp {
  'use strict';

  angular.module('myApp', [
    'ui.router',
    'oc.lazyLoad'])
    .config(RouterConfig)
    .config(Config)
    .run(RunBlock);
}

错误来自于我尝试将其包含在RouterConfig

index.route.ts

module myApp {
  'use strict';

  export class RouterConfig {

    static $inject = ['$stateProvider', '$urlRouterProvider', '$ocLazyLoad'];

    constructor($stateProvider: ng.ui.IStateProvider, $urlRouterProvider: ng.ui.IUrlRouterProvider, $ocLazyLoad: oc.ILazyLoad) {
      $urlRouterProvider.otherwise('/dashboard');

      $stateProvider
        .state('dashboard', {
          url: '/dashboard',
          templateUrl: 'app/modules/core/dashboard/dashboard.html'
        });
    }

  }
}

真正奇怪的是,我可以毫无问题地加入$ocLazyLoadProvider。这是来自Yeoman using gulp, typescript, and ui-router的非常简单的设置。

1 个答案:

答案 0 :(得分:1)

.config(RouterConfig)出错。

传递到config函数未使用new运算符调用,因此不使用typescript class 这里。