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

时间:2016-03-31 02:05:24

标签: javascript angularjs node.js q

在AngularJS中(我非常确定我已经在其他地方看到过)你传递了一个带有参数的函数来进行ng-click。即

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

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

setTimeout(myFunc(param), 2000);

我认为必须有可能,因为Angular似乎将它拉下来,但可以在任何地方找到它。

PS。用例是创建一个与promises一起使用的setTimeout,这样我就可以在promise链中返回它。万一你感兴趣,这就是我被困住的地方:

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

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

  return deferred.promise;
}

1 个答案:

答案 0 :(得分:1)

你想要找到的是Closure?

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

setTimeout(myFunc(param), 2000);

myFunc将返回myFunc2 param myFunc,而myFunc2将在setTimeout后执行{2000}。