我有一个带有模板的指令,其中包含列表元素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
中有这段代码请帮忙。
答案 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