我需要从angularjs指令中访问当前表单(可以嵌套)。我知道我可以使用
要求:'form'
或
要求:'^ form'
升级,但是如果我设计的指令可以在一个表单上深入1级而在另一个表单上深入三个级别会怎么样?
要求:'^ form'或要求:'^^^ form'等
如何设计我的指令以要求最近的形式呢?
谢谢!
答案 0 :(得分:2)
指令嵌套的距离无关紧要。它将一直搜索,直到找到具有该控制器的祖先,否则它将引发错误。
所以如果你有这样的指令:
app.directive("formSpice", function () {
return {
restrict: "A",
require: "^form",
scope: {},
link: function (scope, element, attrs, ctrl) {
scope.formName = ctrl.$name;
}
};
});
你的标记看起来像这样:
<form name="myForm">
<div class="well" form-spice>
<h3>Level 1 - Form Name: {{formName}}</h3>
<div class="well" form-spice>
<h3>Level 2 - Form Name: {{formName}}</h3>
<div class="well" form-spice>
<h3>Level 3 - Form Name: {{formName}}</h3>
</div>
</div>
</div>
</form>
它仍会在所有三个实例中找到该表单。