我想立即调用函数,然后在事件(单击)上调用,以传递参数。
该片段一直有效,直到我将该函数($ scope.appFunctions.testBtn)变成了一个iife。
查看代码段
<button type="button" ng-click="appFunctions.testBtn('filterStr')">testBtn</button>
控制器代码段
$scope.appFunctions.testBtn = (function(filterStr){
alert("testBtn Clicked");
})();
答案 0 :(得分:3)
现在在您的代码中,$scope.appFunctions.testBtn
是函数执行的结果,undefined
。并将此undefined
传递给ng-click指令。这样做会不容易吗?
$scope.appFunctions.testBtn = function (filterStr) {/*...*/}
$scope.appFunctions.testBtn();
绑定后立即调用它,它适用于ng-click
。
答案 1 :(得分:2)
在您的情况下,该函数不返回任何内容,因此将未定义的值分配给$ scope.appFunctions.testBtn。这就是为什么它会在以后调用时失败。
我会删除iife并在声明之后调用该函数。
答案 2 :(得分:1)
如果您的原始函数没有返回任何内容,您可以从IIFE返回相同的函数。
$scope.appFunctions.testBtn = (function testBtn(filterStr){
alert("testBtn Clicked");
return testBtn;
})();