8

我目前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是一个坏主意?

4

1 回答 1

16

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

我当然认为有正当的测试理由让你想要处理这个问题,尽管更常见的方法是通过表单来处理它(例如https://github.com/angular/angular.js/blob /master/test/ng/directive/formSpec.js )

于 2013-04-05T16:23:14.307 回答