2016-04-27 25 views
0

Angular verfügt über eine Funktion, mit der in einigen Fällen versucht wird, Parameter automatisch mit Werten abzugleichen. IE:Kann ich die Parametermustererkennung deaktivieren?

angular.module("foo").controller(function($scope){ 
    //Angular will automatically fill in the value of $scope 
} 

Dies natürlich läuft in Probleme, wenn sie mit minification tun, weshalb wir die Array-Syntax verwenden.

Ist es möglich, diese Funktion von Angular zu deaktivieren? Ich frage, weil ich kürzlich einen Fehler hatte, wo ein Teil meines Codes in unminifizierter Form funktionierte, aber in minimized fehlschlug und die Ursache eine Variable war, die unerwartet von Angular automatisch gefüllt wurde.

Da ich weiß, dass mein gesamter Code mit der Array-Syntax geschrieben werden soll (oder zumindest sollte), möchte ich diese Funktion deaktivieren, damit ich andere versteckte Fehler erzwingen kann.

angular.module("foo").controller("SomeController", ["$scope", function($scope){ 
    //Angular will automatically fill in the value of $scope 
}]); 

... oder:

Antwort

2

Ja und es ist explizite Injektion mit strenge Dependency Injection aktiviert genannt

function SomeController($scope){ 
     //Angular will automatically fill in the value of $scope 
    } 

    SomeController.$inject = ["$scope"]; 
    angular.module("foo").controller("SomeController", SomeController); 

Da ich weiß, dass alle mein Code (oder zumindest sollte geschrieben werden mit die Array-Syntax Ich möchte diese Funktion deaktivieren, so dass ich erzwinge alle anderen versteckten Fehler.

können Sie automatische Parameteranpassung deaktivieren mit strengen Dependency Injection. Siehe Angular des production guide weitere Details zu erhalten:

<div ng-app="myApp" ng-strict-di> 
    <!-- your app here --> 
</div> 

... oder:

angular.bootstrap(document, ['myApp'], { 
    strictDi: true 
}); 
+1

Nicht wirklich, was er fragt nach, als er gefragt, wie Parameterabgleich zu deaktivieren. – mccainz

+0

@mccainz und das ist, was explizite Injektion tut. Es deaktiviert automatische Parameterabgleich –

+0

Wie @mccainz erwähnt, ich kenne bereits diese Syntax und ich erwähnte es in meiner Frage. Was ich suche, ist eine globale Angular-Option, um den 'einfachen' Stil zu deaktivieren, der keine Arrays verwendet –

Verwandte Themen