首页 > 代码库 > AngularJS form $addControl 注册控件control
AngularJS form $addControl 注册控件control
需求背景:
在form中使用编写的某component directive时,想通过form‘s name来对form中控件进行操作,
如使用$invalid等来ng-disabled btn。
解决方案:
通过使用form.$addControl将控件中的control注册到form中,既可使用form‘s name.xxx.$invalid方式来操作。
具体方法:
tw.directive('nameForForm', function() { return { restrict: 'A', require: "?ngModel", link: function($scope, elem, attrs, ngModelCtrl) { var formController = elem.controller('form') || { $addControl: angular.noop }; ngModelCtrl.$name = attrs.workflowNameForForm; formController.$addControl(ngModelCtrl); $scope.$on('$destroy', function() { formController.$removeControl(ngModelCtrl); }); return true; } }; });
使用方式:
component:
<div class="btn-group select select-block mbn"> ... <input type="text" ng-show="false" ng-model="selectedValue" ng-required="selectRequired" name-for-form="{{nameForForm}}" /> </div>
页面使用component:
<tw-select-list name-for-form="city" ... />
参考:http://www.ngnice.com/posts/81c1eb92bfbde0
AngularJS form $addControl 注册控件control
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。