Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:在<;李></李>;使用不同的函数调用进行ng click?_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS:在<;李></李>;使用不同的函数调用进行ng click?

Javascript AngularJS:在<;李></李>;使用不同的函数调用进行ng click?,javascript,angularjs,Javascript,Angularjs,我想创建一个菜单。菜单中的项目数量会有所不同,但选中每个项目时会调用不同的函数。我觉得使用ng repeat显示基于模板的所有项目会更干净,但我不知道如何从模板调用不同的函数。在C++中,可以将函数的指针传递给函数,但在JavaScript或angLasjs中查找类似的东西,并没有给我提供任何有用的东西。在我单独编写每个按钮的代码,并复制/粘贴我的模板之前,有什么方法可以让它工作吗?类似这样的方法吗 <ul> <li ng-repeat="item in list" n

我想创建一个菜单。菜单中的项目数量会有所不同,但选中每个项目时会调用不同的函数。我觉得使用ng repeat显示基于模板的所有项目会更干净,但我不知道如何从模板调用不同的函数。在C++中,可以将函数的指针传递给函数,但在JavaScript或angLasjs中查找类似的东西,并没有给我提供任何有用的东西。在我单独编写每个按钮的代码,并复制/粘贴我的模板之前,有什么方法可以让它工作吗?

类似这样的方法吗

<ul>
    <li ng-repeat="item in list" ng-click="click(item)">Text</li>
</ul>
像这样的

<ul>
    <li ng-repeat="item in list" ng-click="click(item)">Text</li>
</ul>

我发现了一个类似的问题,这可能会解决你的问题。
您不想在每个链接上调用不同的函数,而是传递link元素。

我发现了一个类似的问题,这可能会解决您的问题。 您不希望对每个链接调用不同的函数,而是传递link元素。

备选方案1:

JS:

HTML:

HTML:

  • {{item.name}
  • 演示:备选方案1:

    JS:

    HTML:

    HTML:

  • {{item.name}

  • 演示:

    非常全面的概述,效果非常好。谢谢。非常全面的概述,它工作得非常好。非常感谢。
    $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');
    };
    
    <li ng-repeat="item in items" ng-click="execute(item.action)">
      {{ item.name }}
    </li>
    
    $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();
    };
    
    <li ng-repeat="item in items" ng-click="executor(item)">
      {{ item.name }}
    </li>