在一个角度js指令中,该指令位于"表格输入级别"我想要一个对父表单的引用,以便访问" on submit"事件
现在,我可以通过ID查询表单并添加提交。
但是,我想用angula"元素"来实现它。方法。 但它只是赢了工作。
angular.module('app.common').directive('validateField', ['$timeout', function ($timeout) {
return {
restrict: 'A',
require: '^form',
scope: {
error: '=validateField'
},
link: function(scope, el, attrs, form) {
if (document.getElementById('testing')){
var e = angular.element(document.getElementById('testing'))
e.on('submit', function() {
console.log('Works!');
})
};
el.parent('form').on('submit', function() {
console.log('How do i do this?');
})
}
};
}]);
任何想法如何?
更新
我找到了一个解决方案,但不确定它是否优雅:
// Validate field on "form submit".
angular.element(el[0].form).on('submit', function() {
validate();
});
答案 0 :(得分:1)
如果没有看到你在事件处理程序中尝试做什么,很难知道你想要实现什么,但看起来你只是打算做一些验证。你能不能使用一些自定义的AngularJS验证吗?
答案 1 :(得分:0)
您可以在angular.element函数中使用CSS选择器,
angular.element('#myId'),
angular.element('.myClass')
话虽如此,当您需要表单控制器时,通过使用它的$ name属性,您可以进一步抽象您的指令:
require: '^form',
link: function(scope,el,attrs,form) {
...
if(form.$name) {
var domForm = angular.element("[name=" + form.$name + "]")
domForm.addClass('whee');
}
}