在对象内调用函数作为指令的参数

时间:2017-08-30 08:50:44

标签: javascript angularjs angularjs-ng-click

目前我正在扩展我的应用程序,因此我可以给出一个指令(生成一个表格)一个对象,用于显示其他按钮(用于添加其他其他操作)。

现在我可以显示按钮,但我需要执行一些代码作为函数,应该适用于单击该按钮。

对象本身包含字符串和函数,如下所示:

<tablegrid
  table="flavorings"
  additional-buttons="[{name: 'add', onclick: 'function(){ }', icon: 'fa fa-plus'}]"
  show-actionbutton="true"
  show-rating="true"
  show-search="true"
  show-rowcheckbox="true"
  show-header="true">
</tablegrid>

我的指令模板如下所示:

<button ng-repeat="aB in additionalButtons" class="btn btn-primary" ng-click="ab.onclick" type="button">
  <i ng-class="aB.icon" ng-show="aB.icon  != ''" aria-hidden="true"></i>&nbsp;
  <span>{{ 'TABLEGRID_'+aB.name | uppercase | translate }}</span>
</button>

如何执行onclick-function?

1 个答案:

答案 0 :(得分:0)

您可以使用以下命令直接调用视图中作用域的对象的函数:

ng-click="yourObject.functionName(parameters)"

即使没有参数,也不要忘记函数调用中的括号

以下是它如何运作的演示:

var app = angular.module('myApp', []);

app.controller('MyCtrl', function($scope) {
    $scope.additionalButtons = [
        {'name': 'First', 
         'onclick': function() {alert('1')}
        }, 
        {'name': 'Second', 
         'onclick': function() {alert('2')}
        }
    ];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="MyCtrl">
    <button ng-repeat="ab in additionalButtons" ng-click="ab.onclick()">Click {{ab.name}}</button>
</div>