2016-08-20 11 views
2

に別の関数から渡されたばかりではありません。しかし、私はprocessEmployeeData機能のクリックハンドラ内で定義された以下のconsole.logで両方の変数の値を参照してください。 変数が同じjavascriptのページ

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

だから基本的に、私の変数が initialize関数に機能 processEmployeeDataから渡され取得されていません。それを実現するために私が従うことができる他の方法や、私がやっている間違ったことはありますか?

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 
     }); 
    }; 
+0

問題に関連しないコードをすべて削除できますか?最小限の例が役に立ちます – DelightedD0D

+0

@ DelightedD0D完了! – John

+1

AppManagerはどこに定義されていますか? – DelightedD0D

答えて

0

Javascriptの関数は、主に別のタイプのオブジェクトとして機能します。したがって、関数に変数を割り当てることができます。あなたのケースでは、宣言をthis.Value_Of_Process_Type=AppManager.selectedData["my_page.Process_Type"];に変更すると、関数の別の場所でthis.Value_Of_Process_Typeにアクセスできるようになります。

+0

私は 'initialize'関数でそれをやってみましたが、' this.Value_Of_Process_Type'を使ってコンソールログの値にアクセスしようとしましたが、まだ未定義です。 – John

関連する問題