2013-04-05 7 views
8

Ich verwende derzeit directiveElement.data("$ngModelController"), um Zugriff auf die $ngModelController des Elements zu erhalten, wie im folgenden Beispiel.

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

Allerdings mag ich wissen, ob es ein besseres ist die $ngModelController zuzugreifen, oder wenn die $ngModelController Zugriff ist eine schlechte Idee?

+1

Sie auch tun könnte 'directiveElement .controller ('ngModel') '. Ich denke auch, dass es legitime Testgründe gibt, warum Sie einen Griff dazu haben sollten, obwohl der üblichere Weg ist, sie durch die 'Form' (zB https://github.com/angular/angular) in den Griff zu bekommen. js/blob/Meister/Test/ng/directive/formSpec.js). Nicht sicher, warum Sie $ modellValue auf diese Weise setzen. Willst du wahrscheinlich nicht einfach 'myNgModel' einstellen? – jonc

+0

@jonc Ihr Kommentar ist die Antwort, die ich suchte, können Sie es bitte als Antwort posten und ich werde es als die Antwort markieren. – JJohnston

+0

konnten Sie ngModelCtrl. $ ModelValue? – Winnemucca

Antwort

Verwandte Themen