저는 EditableGrid과 협력하여 열 모델을 동적으로 생성하고 조작합니다. 모든 것은 파이어 폭스 (IE -_-가 아니라 ..yes)와의 단 하나의 호환성 문제를 제외하고는 계획대로 진행되었다. 아마도 이것이 일종의 클로저 문제 일 것 같습니까? 이 문제를 해결할 수있는 방법이 없습니다. 이것은 뭔가 잘못 곳이다 : 그것은 발생그리드가 파이어 폭스에서 렌더링되지 않습니다
EditableGrid.prototype.initializeGrid = function() {
with (this) {
//apply cell validators and inforenderers in headers
var regex = [];
for (var count = 0; count < selectedColumnNames.length; ++count) {
var columnObj = findSelectedColumnObject(selectedColumnNames[count]);
//check if regex is provided
if (!(columnObj[0].validationRegex == "")) {
// add a cell validator
var expression = new RegExp(columnObj[0].validationRegex);
regex[columnObj[0].name] = new RegExp(columnObj[0].validationRegex);
var valObj = GetValidatorObject(expression);
addCellValidator(columnObj[0].name, valObj);
}
}
function GetValidatorObject(regObj){
var obj = {
isValid: function (value) {
return value == "" || (regObj.test(value));
}
};
return new CellValidator(obj);
}
}
는 예외입니다 :
ReferenceError: GetValidatorObject is not defined [var valObj = GetValidatorObject(expression);]
어떤 아이디어?
Nitpick, avoid with 'with'! 당신은 단지 그것을 사용함으로써 큰 두통을 만들 것입니다. 그리고 내 추측은 그것이 당신이 잘못한 이유입니다. – epascarello
나는 그것을 얻지 못한다, 왜 FF일까요? 그것은 다른 브라우저와 완벽하게 작동합니까? – faizanjehangir
GetValidatorObject를'with (this)'의 범위 밖으로 옮겼을 때 작동합니다. – faizanjehangir