AngularJS form $addControl 注册控件control

页面导航:首页 > 网络编程 > JavaScript > AngularJS form $addControl 注册控件control

AngularJS form $addControl 注册控件control

来源: 作者: 时间:2016-02-04 09:15 【

需求背景:在form中使用编写的某component directive时,想通过form 39;s name来对form中控件进行操作, 如使用$invalid等来ng-disabled btn。解决方案:通过使用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:


...

注意:在component中引入nameForForm,且scope中添加nameForForm: '@'

页面使用component:

 
Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<