переменная не передается от одной функции к другой на той же странице JavaScript

javascript jquery

68 просмотра

1 ответ

Когда я запускаю console.logследующее в initializeфункции, определенной в коде ниже:

console.log("Checking for Value_Of_Process_Type in Initialize Function ! :" +Value_Of_Process_Type);
console.log("Checking for Todays Date in Initialize Function ! :" +TodaysDate);

Я получаю undefinedобе переменные. Тем не менее, я вижу значения обеих переменных в следующем, console.logопределенном внутри обработчика щелчка processEmployeeDataфункции:

console.log("Value_Of_Process_Type and Value_Of_TodaysDate are as follows :"+Value_Of_Process_Type+" and "+TodaysDate);

В общем, мои переменные не передаются из функции processEmployeeDataв initializeфункцию. Есть ли другой способ, которым я могу следовать, чтобы это произошло, или что-то не так, что я делаю?

function EmployeePage() {
    var self = this;
    this.employeeData = function (employee_number_) {

    // Initialize the page
    this.initialize = function () {

        var employee_number = AppManager.selectedData["employee_number"];
        console.log("employee_number By calling page:" +employee_number);

        var Value_Of_Process_Type = AppManager.selectedData["my_page.Process_Type"];
        var TodaysDate = AppManager.selectedData["my_page.date_value"];

        console.log("Checking for Value_Of_Process_Type in Initialize Function ! :" +Value_Of_Process_Type);  //outputs undefined here
        console.log("Checking for Todays Date in Initialize Function ! :" +TodaysDate);     //outputs undefined here             
    };


    this.processEmployeeData = function (collection_) {

       $("#myPanel").on('rowclick',function(event){
           row = event.args.rowindex;
           datarow = $("#myPanel").jqxGrid('getrowdata', row);
           var response = JSON.stringify(datarow,null,10);
           var Process_Type = datarow["processType"];
           AppManager.selectData("my_page.Process_Type", Process_Type);
           var  Value_Of_Process_Type = AppManager.selectedData["my_page.Process_Type"];
           var TodaysDate = datarow["date_value"];

           AppManager.selectData("my_page.date_value", TodaysDate);

           var Value_Of_TodaysDate  = AppManager.selectedData["my_page.TodaysDate"];

           console.log("Value_Of_Process_Type and Value_Of_TodaysDate are as follows :"+Value_Of_Process_Type+" and "+TodaysDate); // Prints the values
       });
    };
Автор: John Источник Размещён: 08.11.2019 10:56

Ответы (1)


0 плюса

Решение

Функции в Javascript в основном действуют как объекты другого типа. Следовательно, вы можете назначать переменные функции; В вашем случае изменение вашего объявления this.Value_Of_Process_Type=AppManager.selectedData["my_page.Process_Type"];должно позволить вам получить доступ к нему в другом месте функции с this.Value_Of_Process_Type.

Автор: Larkeith Размещён: 20.08.2016 06:48
Вопросы из категории :
32x32