问题描述
我目前正在使用 directiveElement.data("$ngModelController")
来访问元素的 $ngModelController
,如下例所示.
I'm currently using directiveElement.data("$ngModelController")
to get access to the element's $ngModelController
, as in the following example.
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
}));
});
但是,我想知道访问 $ngModelController
是否更好,或者访问 $ngModelController
是否是一个坏主意?
However, I want to know if there is a better to access the $ngModelController
, or if accessing the $ngModelController
is a bad idea?
推荐答案
你也可以做 directiveElement.controller('ngModel')
.
我当然认为有合理的测试原因为什么您需要处理此问题,尽管更常见的方法是通过表单(例如 https://github.com/angular/angular.js/blob/master/test/ng/directive/formSpec.js)
I certainly think there are legitimate testing reasons why you would want a handle on this, though the more common way is to get a handle on it through the form (eg. https://github.com/angular/angular.js/blob/master/test/ng/directive/formSpec.js)
这篇关于我应该如何在 jasmine 单元测试中访问元素的 angularjs $ngModelController?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!