2016-07-04 17 views
0

Ich verwende den Generator-Angular-Fullstack für meine App und bin in ein Problem geraten, als ich meinen Code verkleinere/hässlich mache.Inline-Annotation für Winkel-Controller (Dienste)

Vor meinem Code minifying konnte ich Dienste nutzen und sie würden gut funktionieren, aber danach bekomme ich folgende Fehlermeldung:

[$ Injektor: UNPR] Unbekannter Anbieter: aProvider < - ein

ich, dass ich gelesen hinzufügen müssen inline Annotationen zu meinen Controller so (zu den minify Prozess stoppen den Dienst von der Zerstörung:

app.controller('mainController', ['$scope', '$http', function($scope, $http) { 
    $scope.message = 'HOORAY!'; 
}]); 

Generator-Winkel fullstack schafft Steuerungen wie folgt aus:

(function() { 

    class EmployeesearchComponent { 

     constructor($scope, $rootScope, $state, $stateParams, elasticservice, $mdDialog) { 
      $scope.message = 'HOORAY!'; 
     }; 
    } 

    angular.module('myApp') 
     .component('employeesearch', { 

      templateUrl: 'app/employeesearch/employeesearch.html', 
      controller: EmployeesearchComponent 

     }); 

})(); 

Wo soll ich die Dienste als Strings hinzufügen?

Danke,

Antwort

0

Ich brauchte die Saiten über dem Konstruktor Feld hinzuzufügen:

static $ inject = [ '$ scope', '$ http']

0

Eine andere Lösung ist die sich ändern controller Schlüssel ein Array mit den Parametern der Namen und die Controller-Klasse am Ende haben, etwa so:

[...] 

.component('employeesearch', { 
    controller: ['$scope', '$rootScope', '$state', '$stateParams', 'elasticservice', '$mdDialog', EmployeesearchComponent]  
}); 

Aber Sie sollen über das Hinzufügen dieser wirklich denken Wenn Sie während des Build-Prozesses Nnotations hinzufügen, würde dies Ihren Code sauberer machen. Wenn Sie Build-Systeme wie gulp oder grunt verwenden, gibt es Bibliotheken, mit denen Sie dies tun können, indem Sie Ihrem Build-Skript nur eine zusätzliche Zeile hinzufügen. Sie können es als "ng-annotieren" finden.

+0

Danke für den Tipp, Hinzufügen zum Controller ist, was ich tun wollte, wie Sie demonstriert (Danke). Ich benutze bereits ng-annotate während des Build-Prozesses, der immer gut funktioniert hat - ich hatte ein Problem, wo einer der Dienste nicht richtig funktionierte nach dem Erstellen, ich wollte es explizit als String festlegen, um sicherzustellen, dass es nicht der Build-Prozess war es auf. Danke noch einmal – Whitts