2017-04-20 5 views
0

Gibt es eine Möglichkeit, in Controller-Module in der Ansicht direkt zu injizieren, ohne es explizit an den Controller zu binden? Mit anderen Worten, gibt es etwas in RichtungVerwendung von injiziert von der Steuerung in Sicht in Winkel

<p>{{$ctrl.$injectedIntoThisController.$stateParams.name}}<p> 

für, wenn $ stateParams in den Controller injiziert wird?

+0

hilfreich: http://stackoverflow.com/a/15040125 – tanmay

Antwort

1

Sie können einen Dienst nicht verwenden, ohne ihn zu injizieren. Sie können den Dienst $injector verwenden, um Dienste basierend auf einer Bedingung dynamisch zu injizieren und dann das, was Sie benötigen, an die Ansicht binden.

angular.controller('MyCtrl', ['$injector', function($injector){ 

if(something){ 
    var service = $injector.get('MyService'); 
    this.prop = service.prop; 
} 

}]) 

und in Ihrer Sicht binden Sie die Eigenschaft.

<div ng-controller="MyCtrl as $ctrl"> 
<p>{{$ctrl.prop}}<p> 
</div> 

https://docs.angularjs.org/api/auto/service/ $ Injektor

Verwandte Themen