2016-04-15 2 views
1

ich habe folgende Fabrik der Lage sein, moment.js in meinem Controller zu injizieren:Fabrik auf Eckige ... Ist das nicht ein Konstruktor, wenn es mit

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

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

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

Dann habe ich versucht, die folgenden:

(function() { 

    "use strict"; 

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

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

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

Aber ich habe den Fehler:

moment is not a constructor 

Wenn ich zu meiner Fabrik ändern:

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

Ich bekomme keinen Fehler mehr.

Was mache ich falsch mit der ersten Syntax?

+0

ich lieber nur momentjs über script src umfassen, als es in Eckige zu injizieren. – Rob

+0

Ich habe es als Javascript in src ... Aber das ist eine Möglichkeit, externe Skripte in Controller zu verwenden ... –

+0

Ich habe es immer benutzt, ohne es zu injizieren: https://jsfiddle.net/3ajtoyfm/ – Rob

Antwort

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' 
    ]); 

injizieren jetzt in Ihren Dienst wie gewohnt

Verwandte Themen