我有一个指令总是放在<form>
里面的包含表单元素(input/select/etc
)的元素上,让我们假设指令被称为wrapper
:
<form>
<something>
<wrapper>
<input />
</wrapper>
</something>
</form>
在此指令中,我需要同时访问formController
和ngModelController
。我知道我可以require: ^form
在包装器的指令定义对象中,但我仍然需要访问ngModelController
。我找到了两种方法来实现它:
childFormControl.controller('ngModel')
childFormControl.data('$ngModelController')
// also for controller I could use this, instead of require
childFormControl.closest('form').controller('form')
childFormControl.closest('form').data('$formController')
我的问题是:使用controller
或data
方法访问控制器是否被视为黑客攻击,或者它是否安全并被视为使用公共 Angular API?我没有在这种方法的 Angular 文档中找到任何示例。
答案 0 :(得分:0)
<body ng-controller="ngModelController ">
<form>
<something>
<wrapper>
<input />
</wrapper>
</something>
</form>
</body>
Js文件
(function(){
var app = angular.module('ngModelController ', function(){
//Your main controller
});
app.directive('wrapper', function(){
return {
restrict : 'E',
controller : function(){
//Your form controller actions
},
controllerAs : 'formController'
};
});
})();