我想创建一个菜单。菜单中的项目数量会有所变化,但是每个项目在被选中时都会调用不同的功能。我觉得使用ng-repeat显示基于模板的所有项目会更干净,但是我不知道如何从模板调用不同的函数。在C ++中,您可以将指向函数的指针作为函数的变量传递,但是我在JavaScript / AngularJS中寻找相似内容的搜索没有为我提供任何有用的信息。在我分别对每个按钮进行编码并复制/粘贴模板之前,有没有什么方法可以使我做到这一点?
选择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>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句