我想在我的指令中设置表单的名称。但是因为我收到错误而无法这样做TypeError:undefined不是一个函数。你能帮我解决这个问题吗?
以下是fiddle
HTML:
<div>
<form>
<input type="text" value="my value" my-element/>
</form>
</div>
指令:
var myApp = angular.module('myApp',[]);
myApp.directive('myElement', function() {
return{
restrict:'A',
compile:function(element, attrs)
{
console.log("Hello Element");
console.log(element.closest("form").attr("name"));
}
}
});
答案 0 :(得分:3)
element
不是jQuery元素,因此您无法在其上调用jQuery方法。幸运的是,有一种更简单的方法:
var myApp = angular.module('myApp',[]);
myApp.directive('myElement', function() {
return{
restrict:'A',
compile:function(element, attrs)
{
console.log("Hello Element");
console.log(element[0].form);
}
}
});
每个HTMLElementObject都有一个form
属性,指向封装形式。
JSFiddle(请注意,您需要将ng-app="myApp"
添加到父div元素。