2015-02-14 3 views
-3

Я делаю первые шаги в agularJS и застреваю, пытаясь создать статическую переменную в функции. функция получает переменную, называемую cron_format, и я хочу, чтобы функция сохранила это значение. функция thee проверяет, изменил ли пользователь значение cron_format, и если да, то помещает данные. это функция:определение статической переменной внутри функции в angularJS

$scope.saveCron = function(userId,scriptId,cronFormat,letter,comp,index){ 

     //split cronFormat to match the value in the table, and than save changes 
     var newCron = $scope.split(cronFormat); 
     newCron[index] = letter; 

     //remove commas to match the cron's format 
     newCron = newCron.toString().replace(/,/g, " "); 

     if(letter!=comp) { 
      $.post("updateCronChange.php", "user_id=" + userId + "&script_id=" + scriptId + "&cron_format=" + newCron, function (data) { 
       console.log("cron changed to: "+newCron); 
      }); 
     } 
    } 

я хочу, чтобы сохранить переменную newCron так, что следующая функция времени вызывается, cronFormat будет равна newCron от последнего выполнения ... любая помощь плз?

+0

Это на самом деле не ваши «первые шаги» в angularJS, у вас есть по крайней мере десяток вопросов за последнюю неделю все связанные с этим 'saveCron' сценария, и одинаковые вопросы звучащие с одинаковыми именами переменных при 2 других учетные записи пользователей. – Claies

ответ

1

Используйте тот факт, что функция «закрывает» внешние переменные области видимости и создает ее для сохранения предыдущего значения.

var prevCron; // Define a variable to hold the value between function calls. 

$scope.saveCron = function(userId,scriptId,cronFormat,letter,comp,index){ 

    //split cronFormat to match the value in the table, and than save changes 
    var newCron = $scope.split(cronFormat); 
    newCron[index] = letter; 

    //remove commas to match the cron's format 
    newCron = newCron.toString().replace(/,/g, " "); 

    if(letter!=comp) { 
     $.post("updateCronChange.php", "user_id=" + userId + "&script_id=" + scriptId + "&cron_format=" + newCron, function (data) { 
      console.log("cron changed to: "+newCron); 
     }); 
    } 

    // Use the outer variable to store our current value. 
    prevCron = newCron; 
} 
Смежные вопросы