2013-06-18 3 views
0

의 함수 사이에 매개 변수를 전달할 때 오류가 발생합니다. 다음 오류가 나타납니다. "레코드가 null이거나 객체가 아닙니다."다음 줄에 "var record = context.record;"가 나타납니다.응용 프로그램을 시작할 때 js

listeners: { 

     beforeedit: 

      function preditar(editor, e, eOpts, mola) { 
      var grid = Ext.getCmp('gridTabla'); // or e.grid 
      var hoy = new Date(); 

      dia = hoy.getDate(); 

      if(dia<10) 
       { 
        dia=String("0"+dia); 

       } 

      mes = hoy.getMonth(); 

      if(mes<10) 
      { 
        mes=String("0"+mes); 

      } 
      anio= hoy.getFullYear(); 
      fecha_actual = String(anio+""+mes+""+dia); 
      //alert(fecha_actual); 

      var mola = e.record.data.ESTLOT; 
      //alert(mola); 
      editar(mola); 

      if (e.record.data.ESTLOT === '02') { 
       if (e.record.data.FECMOD === fecha_actual) 
       { 
       e.cancel = false; //permite 
       } 
       else{ 
        e.cancel = true; //mo permite 
       } 

      } else 
      { 
       e.cancel = false; //permite 
      } 

     }, 

     edit: 

     function editar(e, context, mola){ 
      var record = context.record; 
      var recordData = record.getData(); 
      var mola2= mola; 
      alert(mola2); 
      recordData.Funcionalidad = 'Modificar'; 
      //alert(JSON.stringify(recordData)); 

      Ext.Ajax.request({ 
       url: 'http://localhost:8080/MyMaver/ServletTablaLotes', 
       method: 'POST', 

       // merge row data with other params 
       params: recordData 
      }); 
     } 
     } 
}); 
+2

단일 인수를 사용하여 함수를 호출하고 있습니다. editar (mola) 문맥과 mola는 함수 안에서 null이 될 것입니다. – 999k

+0

괜찮 았는데 문제는 그럴 것 같지만 문제를 어떻게 풀 수 있습니까? – Deckard27

+0

'context'에 대한 참조가 없으므로 eOpts가 작동하는지 '그리드'인지 확인할 수 있습니다. 모르겠다. 변수에 'record'라는 객체가 포함되어 있는지 확인해야한다. 브라우저의 개발자 도구 (F12)를 사용하여 값을 확인하십시오. – jeff

답변

0

당신은

editar(mola); 

으로 함수를 호출하지만 같은 기능을 정의한다 :

editar(e, context, mola) 

는 그래서 기능은 전자 매개 변수를 수신하고 다른 사람이 undefined로 설정됩니다.

+0

나는 var mola = e.record.data.ESTLOT를 사용하려고했습니다; \t // 경고 (mola); \t editar (e, context, mola); 그러나 다음 문제가 나타납니다 "컨텍스트가 정의되지 않았습니다" – Deckard27

+0

내 문제가있는 솔루션? – Deckard27

0

가 문제가 아니라 : 누군가가

내 코드는 다음입니다 ... 설명하거나 내가 편집 기능 beforeedit에서 VAR "몰라"를 통과하려고 ... 실패를 찾을 수 mola은 변하지 만 e.record입니다. 오류 메시지에 변수 e에 개체 record 또는 e.record이 포함되어 있지 않음이 표시되면 null입니다. console.log(e)으로 가서 e 변수를 검사하십시오.

+0

이 경고를 시도하면 (JSON.stringify (recordData)) ; 그 분야에 포함 된 정확한 정보를 obtein ... 나는 555k가 두 가지 기능의 param mola를 종료하면 프로그램이 정상적으로 실행될 수 있다고 생각하지만, 두 함수 사이에 var를 전달하려고 할 때 실패 apperas 때 – Deckard27