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 に答える