0

对于我的指令,我有以下内容可以让我到达我需要去的大部分地方,我的问题是执行函数时ngModelCtrl有一个未定义的属性。我的意图是为其命名,以便指令管理指令中设置的命名模型并将对该命名模型的更改向上传播到:$name.toggleFlyout()ng-modelscope.$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();
        });
      }
    }
  })
4

0 回答 0