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



在AngularJS中(我确信我在其他地方也看到过),您可以将一个带有params的函数传递给ng-click。即

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

我想做的是在JS中传递一个带有类似params的函数作为回调。Ie.

setTimeout(myFunc(param), 2000);

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


PS。它的用例是创建一个与promise一起工作的setTimeout,这样我就可以在promise链中返回它。如果你感兴趣的话,这就是我的困境:

function qTimeout(fn, duration){
  var deferred = q.defer();
  setTimeout(function () {
    fn(*grr*)
      .then(deferred.resolve)
      .catch(deferred.reject)
  })
  return deferred.promise;
}

您试图找到的是闭包?

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

myFunc将从myFunc返回具有parammyFunc2,并且myFunc2将在2000ms后在setTimeout中执行。

相关内容

最新更新