2013-04-05 11 views
8

Şu anda bu örnekte olduğu gibi öğenin $ngModelController ürününe erişmek için directiveElement.data("$ngModelController") kullanıyorum.

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 
    })); 
}); 

Ancak, ben $ngModelController erişmek için daha iyi bir olup olmadığını bilmek istiyorum, ya $ngModelController erişen kötü bir fikir olur?

+1

'directiveElement formu ile bunun ele almak için olsa bu görevde kolu neden isteyeyim meşru test nedenleri olduğunu düşünüyorum .controller ('ngModel') '. Aynı zamanda, bunun üzerinde bir tutamaç olmasını istemenizin meşru bir test sebebi olduğunu da düşünüyorum. Ancak, daha yaygın olan yöntem, form aracılığıyla (örneğin, https://github.com/angular/angular. js/leke/ana/test/ng/yönergesi/formSpec.js). Neden bu şekilde $ modelValue ayarlayacağınızdan emin değilsiniz. Muhtemelen 'myNgModel'ı ayarlamak istemiyor musunuz? – jonc

+0

@jonc Yorumunuz aradığım cevaptır, lütfen cevap olarak gönderin, cevap olarak işaretleyelim. – JJohnston

+0

ngModelCtrl. $ ModelValue ile alay edebildiniz mi? – Winnemucca

cevap