我当前正在使用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/

10-11 23:35