2012-03-16 3 views
1

장고와 함께 jQuery를 사용하여 테이블을 처리합니다. 나는 다음과 같은 자바 스크립트가 있습니다 javascript - 사전 작성의 간단한 산술

$("#pending_table").tablesorter({ 
    headers: {5 + {{somevariable}}: {sorter:false},6 + {{somevariable}}: {sorter:false}} 
}); 

문제를 일으키는 것은 헤더 사전 정의에 추가되었습니다 부분 (I는 관련이없는 다른 옵션의 무리를 생략). 결과 웹 페이지의 소스를 살펴보면, {{somevariable}}이 4의 값으로 올바르게 변환됨을 볼 수 있습니다. 따라서 장고 관련 문제는 아닙니다.

요약 : "5 + 4 : value"가 작동하지 않고 "9 : value"가 작동합니다.

저는 어떻게 든 javascript 구문을 잘못 알고 있다고 가정합니다.

도움 말?

답변

3

자바 스크립트 개체 리터럴은 리터럴 만 키로 허용합니다. 즉, 계산 된 표현식을 키로 사용할 수 없습니다. 예를 들어,이 허용되지 않은 것입니다 : 당신이 그 제한을 우회하기 위해이 작업을 수행 할 수 있다고 말했다

headers = { 
    (1 + 2): 4 
} 

: 귀하의 경우

headers = {}; 
headers[1 + 2] = 4; 

을, 당신이 이런 식으로 뭔가를 할 다음과 같습니다

var headers = {}; 
headers[5 + someVar] = {sorter: false}; 
headers[6 + someVar] = {sorter: false}; 
$("#pending_table").tablesorter({  
    headers: headers 
});  
+1

JSON 문자열을 JavaScript 개체 리터럴과 혼동하지 않습니까? 당신이 언급하는 JSON은 데이터 상호 교환 형식 ([RFC here] (http://tools.ietf.org/html/rfc4627))이지만, 질문은 JavaScript 객체 리터럴에 관한 것입니다. – Tadeck

+0

JSON은 "Javascript Object Notation"의 약자이므로 항상 혼란스러워합니다. 따라서 Javascript에서 객체를 선언 할 때 사용하는 표기법에 해당한다고 가정했습니다. 내가 사용해야하는 두문자어가 있습니까? 어쨌든, 나는 대답을 편집했다. –

+0

나는 JavaScript의 객체의 리터럴이라는 약어를 찾기가 어려울 것이라고 생각한다. 여전히 혼란 스럽다면 JavaScript의 객체 리터럴과 JSON 표기법의 차이점에 대한 설명을 [Mozilla Developer Network : JSON] (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/)에서 읽을 수 있습니다. JSON). – Tadeck