AngularJS:在<li> </ li>上使用ng-repeat并通过不同的函数调用ng-click?

密码

我想创建一个菜单。菜单中的项目数量会有所变化,但是每个项目在被选中时都会调用不同的功能。我觉得使用ng-repeat显示基于模板的所有项目会更干净,但是我不知道如何从模板调用不同的函数。在C ++中,您可以将指向函数的指针作为函数的变量传递,但是我在JavaScript / AngularJS中寻找相似内容的搜索没有为我提供任何有用的信息。在我分别对每个按钮进行编码并复制/粘贴模板之前,有没有什么方法可以使我做到这一点?

tasseKATT

选择1:

JS:

$scope.items =
[
  { name: 'item 1', action: 'function1' },
  { name: 'item 2', action: 'function2' },
  { name: 'item 3', action: 'function3' }
];

$scope.execute = function(action) {
  $scope[action]();
};

$scope.function1 = function () {
 console.log('function1');
);

$scope.function2 = function () {
  console.log('function2');
};

$scope.function3 = function () {
  console.log('function3');
};

HTML:

<li ng-repeat="item in items" ng-click="execute(item.action)">
  {{ item.name }}
</li>

演示: http : //plnkr.co/edit/T6Q3btvk3qbi2SgpIGb6?p=preview

备选方案2:

JS:

$scope.items =
[
  { name: 'item 1', action: function () { console.log('function 1');} },
  { name: 'item 2', action: function () { console.log('function 2');} },
  { name: 'item 3', action: function () { console.log('function 3');} }
];

$scope.executor = function(item) {
  item.action();
};

HTML:

<li ng-repeat="item in items" ng-click="executor(item)">
  {{ item.name }}
</li>

演示: http //plnkr.co/edit/tDuhc2cZgVJ2mQUQm0eq?p = preview

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章