2012-12-13 4 views
0

'eval'이 포함 된 ajaxmin을 사용하여 스크립트를 축소하는 동안 오류가 발생합니다. 아래 진술 문에서 '격자가 정의되지 않았습니다.'오류가 발생합니다. 변수 'grid'는 축소 후 다른 이름으로 변경되었습니다. 나는 'window.grid'와 같은 윈도우에 그리드 객체를 저장하는이 문제를 해결했다. 그러나이 문제를 해결할 다른 방법이 있습니까? 가능하면축소 과정에서 오류가 발생했습니다.

 $(form).html($("#" + this._gridID + "_bulkEditTemplate #" + colName + "_bulkEdit").html());   
     $(target).append(form); 
     var grid = $find(this._gridID); 
     var optionsObj = eval("grid.jsonModeMgr._jsonDataAndOption." + colName + "_Options"); 
     $("#" + this._gridID + " #" + colName).html($($("#" + this._gridID + "_bulkEditTemplate").tmpl(optionsObj).find('#' + colName + ' option'))); 
     var editElement = $("#" + this._gridID + " #" + colName); 
     $(editElement).val(this.currentCellValue == null ? "" : this.currentCellValue); 
     $(editElement).val(this.currentCellValue).focus(); 
     $(editElement)[0].focus(); 

감사

일반적으로
+1

왜'eval'입니까? 코드의 목적은 무엇입니까? – elclanrs

+0

'jsontemplate'에 드롭 다운 값을 추가해야합니다. 그것은 내 시나리오에 필수품이되었습니다. – RGR

+0

더 많은 코드를 게시하십시오. 현재 코드 또는 드롭 다운에 json이 없습니다. – elclanrs

답변

1

, 당신은 eval()을 피해야한다. 이와

var optionsObj = eval("grid.jsonModeMgr._jsonDataAndOption." + colName + "_Options"); 

: :이 eval() 라인을 대체 할 수

var optionsObj = grid.jsonModeMgr._jsonDataAndOption[colName + "_Options"]; 

계산 된 문자열의 이름이나 변수에 포함 된 문자열 속성에 액세스하려면를, 당신은 대신 [string here] 구문을 사용할 수 있습니다 도트 구문.

+0

그레이트!. 도와 줘서 고마워. @ jfriend00 – RGR

관련 문제