AngularJS 具有隐藏功能的自定义指令

AngularJS custom directive with hide function

我正在尝试创建一个 AngularJS 自定义指令来隐藏变量中的元素。

例如,我从指令生成了三个 link:

我想隐藏 "Hide" link.

这是我的观点:

<ul>
  <menu link="Home"></menu>
  <menu link="About"></menu>
  <menu link="Hide"></menu>
</ul>

...指令:

app.directive('menu', function() {
    return {
      scope: {
          link: "@"
      },
      template: '<li ng-hide="hideMenu(link)">{{link}}</li>',
      controller: function($scope) {
        var hideLink = 'Hide';
        function hideMenu(link) {
          if (hideLink == link) {
            return true;
          }
        }
      }
    };
});

...and Plunker.

谢谢!

在指令 $scope.hideMenu = hideMenu;

中添加到您的控制器
app.directive('menu', function() {
    return {
      scope: {
          link: "@"
      },
      template: '<li ng-hide="hideMenu(link)">{{link}}</li>',
      controller: function($scope) {
        var hideLink = 'Hide';
        function hideMenu(link) {
          if (hideLink == link) {
            return true;
          }
        }

        $scope.hideMenu = hideMenu;
      }
    };
});

要使您的函数在您的模板中可用,它必须在您的范围内。这是更新后的代码:

app.directive('menu', function() {
return {
  scope: {
      link: "@"
  },
  template: '<li ng-hide="hideMenu(link)">{{link}}</li>',
  controller: function($scope) {
    var hideLink = 'Hide';
    $scope.hideMenu = function(link) {
      if (hideLink == link) {
        return true;
      }
    }
  }
};
});