Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该如何访问元素';jasmine单元测试中的s angularjs$ngModelController?_Angularjs_Jasmine_Angularjs Directive - Fatal编程技术网

我应该如何访问元素';jasmine单元测试中的s angularjs$ngModelController?

我应该如何访问元素';jasmine单元测试中的s angularjs$ngModelController?,angularjs,jasmine,angularjs-directive,Angularjs,Jasmine,Angularjs Directive,我目前正在使用directiveElement.data(“$ngModelController”)访问元素的$ngModelController,如下例所示 describe("directiveElement", function () { it("should do something with ngModelController", inject(function($compile, $rootScope) { var directiveElement = $compile(

我目前正在使用
directiveElement.data(“$ngModelController”)
访问元素的
$ngModelController
,如下例所示

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
  }));
});
描述(“directiveElement”,函数(){
它(“应该使用ngModelController做些什么”,inject(函数($compile,$rootScope){
var directiveElement=$compile(“”($rootScope);
$rootScope.$digest();
var ngModelCtrl=directiveElement.data(“$ngModelController”);
ngModelCtrl.$modelValue=“12345”;
//做剩下的测试
}));
});

但是,我想知道是否有更好的方法访问
$ngModelController
,或者访问
$ngModelController
是个坏主意?

您也可以执行
directiveElement.controller('ngModel')


我当然认为有正当的测试理由可以解释为什么您需要一个句柄,尽管更常见的方法是通过表单获取句柄(例如,

您也可以执行
directiveElement.controller('ngModel')
)。当然,我也认为有正当的测试理由可以解释为什么您需要一个句柄,尽管更常见的方法是通过
表单
(例如)获取句柄。但不确定为什么要这样设置$modelValue。你可能只是想设置
myNgModel
?@jonc你的评论就是我想要的答案,你能不能把它作为答案发布,我会把它标记为答案。你能模仿ngModelCtrl.$modelValue吗?你有一个小时的“ngModelController”而没有弄明白这个问题。谢谢