2014-10-23 2 views
1

전체 개체를 javascript로 바로 전달하려고하지만 작동하지 않는 것 같습니다. 다른 게시물에서 권장하는 {{{data}}} 접근 방식과 {{data}} 접근 방식을 시도했습니다. 나는 핸들 파일에서이 같은 일을 해요 :JavaScript에서 Handlebars 개체 사용

다음의
<script> 
    var myData = {{data}}; // or even {{{data}}} 
</script> 

모두 나에게 예외를 제공합니다 : catch되지 않은 구문 에러를 : 예기치 않은 식별자. 내가 "[개체 개체"]은

var myDataUrl = "{{data.url}}"; 

그것은 잘 작동하지만 첫 번째 경우를 위해 그것을 밖으로 인쇄 할하지만 경우. 케이스 1을 어떻게 만들 수 있을지에 대한 생각은 없습니까?

+0

핸들 막대 템플릿은 JavaScript가 아닙니다. JavaScript를 만들기 위해 * JavaScript를 사용하고 싶다면 먼저 텍스트로 렌더링 한 다음 결과를 평가해야합니다. – meagar

+0

그 일을하는 가장 좋은 방법은 무엇입니까? JSON.stringify ({{{data}}}) 같은 문제가있는 것 같습니다. – wittythotha

답변

3

자바 스크립트 데이터를 템플릿에 직접 삽입하려면 합법적 인 자바 스크립트 문자열을 만들어 해당 문자열을 템플릿에 전달해야합니다. 템플리트에 도달하기 전에 합법적 인 Javscript 여야합니다. JSON.stringify()과 같은 것을 사용하면 합법적 인 자바 스크립트를 만드는 것과 같은 방법 일뿐만 아니라 그 방법이 아닙니다. 여기

는 HTML 파일에 일부 자바 스크립트 데이터 구조를 삽입 광산의 핸들 템플릿을 먹기 :

<script> 
// temperature data - array of arrays of the form [dateTime, atticTemp, outsideTemp] 
var temperatureData = {{{temperatures}}}; 
// onOffData is an array of [dateTime, str] - where str is "on" or "off" 
var onOffData = {{{onOffData}}}; 
</script> 

이 그리고, 템플릿에 전달되는 데이터는 다음과 같습니다 (두 메소드 호출은 JSON 문자열을 반환) :

app.get('/chart', function(req, res) { 
    var tempData = { 
     temperatures: data.getTemperatureDataSmallJSON(), 
     onOffData: data.getFanOnOffDataSmallJSON(), 
     units: req.cookies.temperatureUnits 
    }; 
    res.render('chart', tempData); 
}); 
이이처럼 보이는 HTML 파일의 조각을 초래

:

<script> 
// temperature data - array of arrays of the form [dateTime, atticTemp, outsideTemp] 
var temperatureData = [[1412752013861,22.19,16.35],[1412753505591,22,16.15],[1412754286561,21.85,15.94]]; 
// onOffData is an array of [dateTime, str] - where str is "on" or "off" 
var onOffData = [[1411786960889,"off"],[1411790853867,"off"]]; 
</script> 

데이터를 JSON으로 변환하고 해당 JSON 문자열을 템플릿에 전달합니다.

관련 문제