Factory on Angular ...使用它时不是构造函数

时间:2016-04-15 17:11:56

标签: angularjs

我有以下工厂可以在我的控制器中注入moment.js:

angular.module("app").factory("moment", moment);

moment.$inject = ["$window"];

function moment($window) {
  return $window.moment;
}

然后我尝试了以下内容:

(function () {

  "use strict";

  angular.module("app").controller("ProjectController", ProjectController);

  ProjectController.$inject = ["projectService", "moment"];

  function ProjectListController(projectService, moment) {
     var date = new moment();
  }
}

但是我得到了错误:

moment is not a constructor

如果我将工厂改为:

angular
  .module('app')
  .factory('moment', function ($window) {
    return $window.moment;
  });

我不再收到错误了。

第一种语法我做错了什么?

1 个答案:

答案 0 :(得分:2)

  angular.module('XRegExp', []).factory('XRegExp', ['$window', function ($window) {
    return $window.XRegExp;
  }]);

  angular.module('lodash', []).factory('_', ['$window', function ($window) {
    return $window._;
  }]);

  angular.module('admin', [
'XRegExp',
'lodash'
  ]);

现在照常注入您的服务