单击指令时,ShowPopover不起作用。您能帮我找出问题的原因吗?

指示:

 angular.module('landingBuilder').directive('popoverDirective', popoverDirective);

        function popoverDirective() {
            return {
                restrict: 'E',
                templateUrl: '/libs/landing-builder/directive/popover-directive/popover-directive.html',
                controller: controller,
                controllerAs: 'vm',
                transclude: true,
                bindToController: true
            };

            function controller($element, $document){
                var vm = this;
                vm.showPopover = showPopover();
                function showPopover() {
                    console.log('show popover');
                };
            }
        }


模板:

<div class="input-layover popup-target" ng-click="vm.showPopover"</div>

最佳答案

在此使用showPopover()代替showPopover

myApp.directive('myDirective', function() {
  return {
    restrict: 'E',
    template: '<button ng-click=vm.showPopover()>hello</button>',
    controller: controller,
    controllerAs: 'vm',
    transclude: true,
    bindToController: true
  };

  function controller($element, $document) {
    var vm = this;
    vm.showPopover = showPopover;

    function showPopover() {
      console.log('show popover');
    };
  }
});


Working Fiddle

10-06 04:30