在angularJS应用程序的uib手风琴模板中使用我自己的函数

在angularJS应用程序的uib手风琴模板中使用我自己的函数,angularjs,bootstrap-accordion,Angularjs,Bootstrap Accordion,我有一个AngularJS应用程序。 但是我想用我自己的模板使用手风琴,在这个模板中使用我自己的函数 这是我的html代码: <div ng-controller="AccordionDemoCtrl"> <script type="text/ng-template" id="group-template.html"> <div class="panel-heading"> <h4 class="panel-title" style=

我有一个AngularJS应用程序。 但是我想用我自己的模板使用手风琴,在这个模板中使用我自己的函数

这是我的html代码:

<div ng-controller="AccordionDemoCtrl">
  <script type="text/ng-template" id="group-template.html">
    <div class="panel-heading">
    <h4 class="panel-title" style="color:#fa39c3">
     <a href tabindex="0" class="accordion-toggle" ng-click="toggleOpen()" uib-accordion-transclude="heading">
      <span uib-accordion-header ng-class="{'text-muted': isDisabled}">
        {{heading}}
      </span>
     </a>
    </h4>
</div>
<div class="panel-collapse collapse" uib-collapse="!isOpen">
  <div class="panel-body" style="text-align: right" ng-transclude></div>
</div>
</script>
 <uib-accordion close-others="oneAtATime">
  <div uib-accordion-group class="panel-default" heading="Custom template" template-url="group-template.html">
    Hello
  </div>
</uib-accordion>
</div>

你好
这是我使用的代码的一部分

所有这些都可以,但我想在脚本/模板部分使用控制器中的一些函数


你知道我如何做到这一点吗?

问题是你在这里的子范围内-由UI引导创建。 如果您真的想这样做-唯一的方法是通过
$parent

以下几点应该有效

<!doctype html>
<html ng-app="ui.bootstrap.demo">
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-animate.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular-sanitize.js"></script>
    <script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-2.5.0.js"></script>
    <script src="example.js"></script>
    <link href="//netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>

<div ng-controller="AccordionDemoCtrl">
  <script type="text/ng-template" id="group-template.html">
    <div class="panel-heading">
      <h4 class="panel-title" style="color:#fa39c3">
        <a href tabindex="0" class="accordion-toggle" ng-click="$parent.showAlert(); toggleOpen();" uib-accordion-transclude="heading">
          <span uib-accordion-header ng-class="{'text-muted': isDisabled}">
            {{heading}}
          </span>
        </a>
      </h4>
    </div>
    <div class="panel-collapse collapse" uib-collapse="!isOpen">
      <div class="panel-body" style="text-align: right" ng-transclude></div>
    </div>
  </script>

  <uib-accordion close-others="oneAtATime">
    <div uib-accordion-group class="panel-default" heading="Custom template" template-url="group-template.html">
      Hello
    </div>
  </uib-accordion>
</div>
  </body>
</html>

对于某些函数,您是什么意思?例如,我想将“ng click=“toggleOpen()””替换为类似“ng click=“myfunction()””的内容,而myfunction是在AccordionDemoCtrl中定义的函数。但它不起作用。我尝试了类似“ng click=”AccordionDemoCtrl.myfunction()”的方法,但它也不起作用。
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ngSanitize', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('AccordionDemoCtrl', function ($scope) {
  $scope.oneAtATime = true;

  $scope.groups = [
    {
      title: 'Dynamic Group Header - 1',
      content: 'Dynamic Group Body - 1'
    },
    {
      title: 'Dynamic Group Header - 2',
      content: 'Dynamic Group Body - 2'
    }
  ];

  $scope.items = ['Item 1', 'Item 2', 'Item 3'];

  $scope.showAlert = function()
  {
    alert('Hello');
  };

  $scope.addItem = function() {
    var newItemNo = $scope.items.length + 1;
    $scope.items.push('Item ' + newItemNo);
  };

  $scope.status = {
    isCustomHeaderOpen: false,
    isFirstOpen: true,
    isFirstDisabled: false
  };
});