2016-04-18 13 views
0

Wir haben standardisiert alle neuen Direktiven als Controller zu erstellen, die dann mit der Vorlage in der Direktive verheiratet werden. Dies ermöglicht uns, die primäre Funktionalität zu testen, ohne angular-html2js zu verwenden, die wir aus unserem Workflow entfernen müssen.Manuelles Instanziieren von ngModelController im Test

Wir möchten jedoch die Funktionalität nicht neu schreiben, um ein Modell mit einer komplexen Ansicht zu erstellen, das den Benutzern beim Bearbeiten hilft. Daher möchte ich einen ngModelController manuell erstellen und dann in $ onInit mit $ element.controller() abrufen.

Das Problem, das ich habe, ist, dass ngModelController scheint nicht ordnungsgemäß mit dem Injektor registriert werden, so dass ich nicht ganz herausfinden kann, die Syntax für die Erstellung eines.

Ich habe versucht ngModel = $ controller ('ngModelController', {$ scope: $ scope, $ attrs: {'ng-model': 'messen'}});

ngModel = $controller('ngModel', { $scope: $scope, $attrs: { 'ng-model': 'measure' } }); 

und ngModel = $ Regler ('NGModelController', {$ -umfang: $ Umfang, $ attrs: { 'ng-model': 'Maßnahme'}});

Keine dieser Arbeiten.

Ich nehme an, ngModelController wurde getestet, so dass es möglich sein muss, es zu bekommen. Gedanken?

Antwort

1

ich schließlich found the answer. Auf den Punkt gebracht:

 
$scope=$rootScope.$new(); 
$scope.dummy='foo; 
$compile('<input ng-model="dummy" />')($scope).controller('ngModel'); 

Hoffe das hilft jemandem.