Aktualnie używam directiveElement.data("$ngModelController")
, aby uzyskać dostęp do elementu elementu $ngModelController
, jak w poniższym przykładzie.
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
}));
});
Jednakże chcę wiedzieć, czy istnieje lepszy dostęp do $ngModelController
, czy dostępu do $ngModelController
jest złym pomysłem?
Można również zrobić 'directiveElement .controller ('ngModel') '. Z pewnością myślę, że istnieją uzasadnione powody testowania, dlaczego chciałbyś sobie z tym poradzić, chociaż najczęstszym sposobem jest opanowanie go poprzez "formularz" (np. Https://github.com/wymiarowy/wymiarowy. js/blob/master/test/ng/directive/formSpec.js). Nie wiesz, dlaczego ustawiasz wartość $ modelValue w ten sposób. Czy nie chcesz po prostu ustawić 'myNgModel'? – jonc
@jonc Twój komentarz jest odpowiedzią, której szukałem, czy możesz ją opublikować jako odpowiedź i oznaczyć ją jako odpowiedź. – JJohnston
byłeś w stanie wykpić ngModelCtrl. $ ModelValue? – Winnemucca