无论如何,我可以从范围访问表单控制器而不知道用户为表单名称定义了什么。
通常,我们将以这种方式访问表单控制器:
$form['register_form']
但是,我正在寻找一种方法,该方法可以在不知道表单名称的情况下访问表单控制器。例子:
$form[$scope.form_name]
我假设从$ scope本身引用了表单名称或表单控制器。
您可以使用
angular.element(el).inheritedData('$formController');
这将获得对元素的父表单的引用。
我在这里创建了一个小例子。但是,我不会像在示例中那样在控制器内执行此操作。我会将需要父窗体的任何逻辑放入指令中。像这样的东西:
.directive('myDirective', function() {
return {
require: '^form',
restrict: 'A',
controller: ['$scope', function($scope){
$scope.$watch('form', function(val){
// some controller logic
});
}],
link: function(scope, element, attrs, frm) {
scope.form = frm;
// your other logic
}
};
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句