Tôi hiện đang sử dụng directiveElement.data("$ngModelController")
để truy cập vào phần tử $ngModelController
của phần tử, như trong ví dụ sau.
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
}));
});
Tuy nhiên, tôi muốn biết nếu có một tốt hơn để truy cập $ngModelController
, hoặc nếu truy cập vào $ngModelController
là một ý tưởng tồi?
Bạn cũng có thể làm 'directiveElement .controller ('ngModel') '. Tôi cũng chắc chắn nghĩ rằng có những lý do thử nghiệm hợp pháp tại sao bạn sẽ muốn có một xử lý về điều này, mặc dù cách phổ biến hơn là để có được một xử lý trên nó thông qua 'form' (ví dụ: https://github.com/angular/angular. js/blob/master/test/ng/chỉ thị/formSpec.js). Bạn không chắc chắn lý do tại sao bạn thiết lập $ modelValue theo cách này. Bạn có lẽ chỉ muốn đặt 'myNgModel'? – jonc
@jonc Nhận xét của bạn là câu trả lời tôi đang tìm kiếm, bạn có thể vui lòng đăng câu trả lời đó và tôi sẽ đánh dấu câu trả lời đó là câu trả lời. – JJohnston
bạn có thể giả lập ngModelCtrl. $ ModelValue? – Winnemucca