angularjs - 我应该如何在 jasmine 单元测试中访问元素的 angularjs $ngModelController?

标签 angularjs jasmine angularjs-directive

我目前正在使用 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
  }));
});

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

最佳答案

你也可以做 directiveElement.controller('ngModel') .

我当然认为有合法的测试原因,为什么您需要处理此问题,尽管更常见的方法是通过表单(例如 https://github.com/angular/angular.js/blob/master/test/ng/directive/formSpec.js )来处理它

关于angularjs - 我应该如何在 jasmine 单元测试中访问元素的 angularjs $ngModelController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15836908/

相关文章:

angularjs - 如何使 Angular Forms ngModel 类继承自 Bootstrap Forms 类

javascript - <head> 标签上的 Angularjs 1.5 ng-controller

AngularJS 嵌套指令

javascript - 多个 Angular 验证器独立工作,但不一起工作

typescript - Chutzpah 找不到变量

angular - Angular 2+ 中的 Jasmine 未找到规范

javascript - Highcharts 错误 #13 和 AngularJs

javascript - 如何在异步推送元素的javascript中打印数组?

javascript - 一个 Controller 的作用域会阻塞 Angularjs 中的其他作用域

javascript - 从服务 AngularJS + TypeScript 调用指令