问:如何使用ng-repeat onClick在AngularJs中使用param执行函数?

时间:2015-11-29 04:11:16

标签: javascript angularjs

我有一个带有模板的指令,其中包含列表元素viewDidLoad并且具有viewDidLayout功能。我将输入作为数组输入到该指令。该阵列有两个参数,它们是名称& functionname。

< ul> < / ul>

要执行此函数名,我在目录中使用另一种方法。那是

onClick

它工作正常。现在我需要在其中添加两个选项,其功能包括如下参数

     $scope.actionsArray = [{
        functionName: $scope.releaseAllMovie,
        name: "Release All Movie"
      }, {
        functionName: $scope.releaseByDate,
        name: "Release By Date "
      }];

但它没有按照预期的方式运作。虽然这些项目 controller: function($scope){ $scope.exec = function(func){ func(); }; }, ,但我得到的错误如下:

  

TypeError:func不是函数

我在Plnkr

中有这段代码

请帮忙。

1 个答案:

答案 0 :(得分:3)

那是因为这条线就在这里:

functionName: $scope.addVideos('clip')

将立即使用该参数评估函数,并将结果分配给functionName

听起来你想要的是一个用这个特定参数执行的函数。幸运的是,您可以使用bind function in JavaScript实现此目的。

functionName: $scope.addVideos.bind(this, 'clip')

这实际上会创建一个使用这些参数预先绑定的新函数。

这是您的plunker的一个分支,显示了正常工作代码: http://plnkr.co/edit/PboMINtDGmMNvDfuBjTd?p=preview