Attualmente sto utilizzando directiveElement.data("$ngModelController")
per accedere a $ngModelController
dell'elemento, come nell'esempio seguente.
describe("directiveElement", function() {
it("should do something with ngModelController", inject(function($compile, $rootScope) {
var directiveElement = $compile("<input ng-model="myNgModel" customDirective type="text"></input>")($rootScope);
$rootScope.$digest();
var ngModelCtrl = directiveElement.data("$ngModelController");
ngModelCtrl.$modelValue = "12345";
// do rest of test
}));
});
Tuttavia, voglio sapere se v'è una migliore per accedere al $ngModelController
, o se l'accesso alla $ngModelController
è una cattiva idea?
Si potrebbe anche fare 'directiveElement .controller ('ngModel') '. Penso anche che ci siano legittimi motivi di test per cui vorresti avere un controllo su questo, anche se il modo più comune è quello di ottenere un handle attraverso il 'form' (ad esempio https://github.com/angular/angular. js/blob/master/test/ng/direttiva/formSpec.js). Non sei sicuro del motivo per cui stai impostando $ modelValue in questo modo. Non vuoi semplicemente impostare 'myNgModel'? – jonc
@jonc Il tuo commento è la risposta che stavo cercando, puoi postarla come risposta e la contrassegnerò come risposta. – JJohnston
sei riuscito a prendere in giro ngModelCtrl. $ ModelValue? – Winnemucca