我的角度控制器有一个Jasmine测试,具有以下功能:
function compileDirective() {
var body = '<div class="col-sm-4">' +
'<input id="email" type="email" ng-model="form.email" value="test@test.com" field-match="emailsMatch()">' + '</div>';
var tpl = '<form name="myForm">' + body + '</form>';
inject(function($compile) {
var form = $compile(tpl)(scope);
elem = form.find('div');
});
function emailsMatch() {
//do some logic in here, depending on the value of the email field
}
scope.$digest();
}
我希望能够在compileDirective函数(emailsMatch())中创建另一个函数,该函数查看输入字段中的值并使用它来执行某些逻辑。我不知道如何访问输入字段。我有一个elem的句柄,这是整个html开头的。如何查看输入字段的值?
答案 0 :(得分:1)
要访问emailsMatch
功能,您应该将其作为scope
的一部分。另一方面,如果您在标记中写了ng-model="form.email"
,我认为您有form
您email
中的1}}(内置scope
属性)属性。所以你需要这样的东西:
scope.emailsMatch = function() {
console.log( scope.form.email ); //should print value of the <input>
};