在回调中执行 fn(param1, param2) AngularJS ng-click 样式

Execute fn(param1, param2) in callback AngularJS ng-click style

在 AngularJS 中(我很确定我在其他地方看到过)你将一个带有参数的函数传递给 ng-click。即

<div ng-click="myFunc(param)">Click Me</div>

我想做的是传递一个带有参数的函数作为JS中的回调。即

setTimeout(myFunc(param), 2000);

我认为这一定是可能的,因为 Angular 似乎成功了,但可以在任何地方找到它。


PS。这个用例是创建一个与承诺一起工作的 setTimeout,所以我可以 return 它在承诺链中。如果您有兴趣,这就是我遇到的问题:

function qTimeout(fn, duration){
  var deferred = q.defer();

  setTimeout(function () {
    fn(*grr*)
      .then(deferred.resolve)
      .catch(deferred.reject)
  })

  return deferred.promise;
}

您要查找的是 Closure 吗?

function myFunc(param) {
  return function myFunc2() {
    // do something with param..
    return doAsync(param); // suppose to return promise 
  };
}

setTimeout(myFunc(param), 2000);

myFunc 将 return myFunc2 其中 param 来自 myFunc 并且 myFunc2 将在 [=16= 中执行] 2000 毫秒后。