programing

AngularJS에서 $timeout을 사용하여 매개 변수로 함수를 실행하는 방법은?

easyjava 2023. 9. 26. 22:39
반응형

AngularJS에서 $timeout을 사용하여 매개 변수로 함수를 실행하는 방법은?

제 Angular 안에 이 기능이 있습니다.JS 컨트롤러.이렇게 보입니다.

polling_interval=1000;
var poll = function() 
{
  //Execution code
  $timeout(poll, polling_interval); 
}; 
poll();

사용합니다.$timeout앵귤러 서비스JS는 계속 자신을 부르는 것입니다.이 폴 함수에 매개 변수를 추가할 때까지 작동합니다.추가된 매개변수에 대한 내 코드는 다음과 같습니다.

polling_interval=1000;
var poll = function(param1, param2) 
{
  //Execution code
  $timeout(poll(param1, param2), polling_interval); 
}; 
poll(param1, param2);

그 구문은 받아들일 수 없어서 저는 지금 막막합니다.다음을 사용하여 매개 변수를 사용하여 함수를 실행하는 방법$timeoutAngularJS에서?이 작업을 수행할 수 없는 경우 이 문제를 해결할 수 있는 방법이 있습니까?저는 제 여론조사 기능이 매개변수를 받아들이도록 하고 싶습니다.

$Timeout은 Angular의 window.setTimeout의 포장지입니다.당연히 setTimeout과 마찬가지로 타임아웃된 fn에 추가 파라미터를 전달할 수 있습니다.

각진 상태에서JS API:

$timeout([fn], [delay], [invokeApply], [Pass]);

[fn] (기능) 당신의 기능이 되는 것
[delay] (숫자) 지연 시간(ms)
[invokeApply](boolean)은 기본값이 true이고, true이고, fn은 $apply 내부에서 실행되며, false인 경우 모델 더티 검사를 건너뜁니다.
[패스] 추가 파라미터!이것이 당신이 원하는 것입니다!

코드가 어떻게 표시되어야 합니다.

polling_interval = 1000;
var poll = function(param1, param2){
    //Execution code
    $timeout(poll, polling_interval, true, param1, param2); 
}; 
poll(param1, param2);

이 방법은 매개 변수를 타임아웃된 fn에 전달하는 적절한 방법입니다.이것이 도움이 되기를 바랍니다.

편집: 이 기능은 2015년 1월 22일(v1.4.1)에 추가되었으며, 버전 이전의 올바른 접근 방식은 다음과 같습니다.

polling_interval = 1000;
var poll = function(param1, param2){
    //Execution code
    $timeout(poll.bind(null, param1, param2), polling_interval); 
}; 
poll(param1, param2);

왜냐하면 첫번째 파라미터 타입은$timeoutis function, 당신은 다음과 같습니다.

polling_interval=1000;
var poll = function(param1, param2) 
{
  //Execution code
  $timeout(function() {poll(param1, param2)}, polling_interval); 
}; 
poll(param1, param2);

익명 기능을 사용하는 것이 가장 쉬운 방법일 것입니다.

polling_interval=1000;
var poll = function(param1, param2) 
{
  //Execution code
  $timeout(function () { poll(param1, param2) }, polling_interval); 
}; 
poll(param1, param2);

언급URL : https://stackoverflow.com/questions/22876031/how-to-run-function-with-parameters-using-timeout-in-angularjs

반응형