在自定义指令中访问ngModel` $ name`

时间:2014-09-17 01:47:34

标签: javascript angularjs angular-directive

对于我的指令,我有以下内容让我最需要的地方,我的问题是ngModelCtrl在执行$name函数时有一个未定义的属性.toggleFlyout()。我的目的是为它赋予一个名称,以便指令管理ng-model指令中的命名模型集,并将对该命名模型的更改向上传播到scope.$parent

编辑 :此处尝试的Plunkr:http://plnkr.co/edit/uD21fH62GLA5THs8ZuPj

<button data-ng-model="flyoutIsToggled" data-flyout-toggle>Toggle Flyout</button>

  .directive('flyoutToggle', function () {
    return {
      require: '^ngModel',
      restrict: 'A',
      link: function(scope, element, attrs, ctrl) {
        var ngModelCtrl = ctrl;
        scope.toggleFlyout = function () {
          ngModelCtrl.$modelValue = !ngModelCtrl.$modelValue;
          scope.$parent[ngModelCtrl.$name] = !ngModelCtrl.$modelValue;
        }
        //ui->model
        element.bind('click', function (e) {
          scope.toggleFlyout();
        });
      }
    }
  })

0 个答案:

没有答案