2014-04-24 3 views
2

저는 작업중인 Pyramid/sqlalchemy 프로젝트에서 템플릿을 렌더링하기 위해 mustache.js를 사용하고 있지만 브라우저에서 렌더링하지 않는 것으로 보입니다. 디버깅을 위해 Chrome의 Firebug Lite와 개발자 콘솔을 사용하고 있습니다. HTML 렌더링 .. 몸 여기콧수염이 피라미드에서 렌더링되지 않습니다.

$(document).ready(function() { 

$(document.body).append('<div id =\"user\">hello here is some stuff <br /></div>'); 

var person = { 
"title" : "Herr Doktor Professor", 
"firstname": "Don", 
"lastname": "Johnson" 
}; 


console.log(person); 
var template = '<h1>Greetings, {{title}} {{firstname}} {{lastname}}</h1>'; 
console.log(template); 
var user = Mustache.render(template, person); 
console.log(user); 
$('#user').append(user); 
$(document.body).append(Mustache.render("{{title}} {{lastname}}", {title: "Doctor",  lastname: "Test"})); 
}); 

goofiness이야에서 머리

<script type="text/javascript" src="/static/mustache.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 

에,

을 상단 : 여기

내가 사용하려고 해요 코드입니다 나에게 준다

<h1>Greetings, </h1> 

... 지금 콘솔 또한

Object {title: "Herr Doktor Professor", firstname: "Don", lastname: "Johnson"} 
<h1>Greetings, </h1> 

에서

console.log(person); 
var template = '<h1>Greetings, {{title}} {{firstname}} {{lastname}}</h1>'; 
console.log(template); 

수익률 ...

var user = Mustache.render(template, person); 
console.log(user); 

나에게이 가져옵니다 : 온 문자

<h1>Greetings, </h1> 

템플릿을 마지막 줄은 아무 것도하지 않는 것 같습니다.

>template 
"<h1>Greetings, {{title}} {{firstname}} {{lastname}}</h1>" 

그루비 :

var template = '<h1>Greetings, {{title}} {{firstname}} {{lastname}}</h1>'; 

나는이 얻을 : 그것은 콘솔 자체에서 .. 정말 이상한 얻을 어디이하려고하면

그래서 여기입니다! 이제 다음을 수행합니다.

>var person = { 
    "title" : "Herr Doktor Professor", 
    "firstname": "Don", 
    "lastname": "Johnson" 
    }; 

>person 
Object {title: "Herr Doktor Professor", firstname: "Don", lastname: "Johnson"} 
>var user = Mustache.render(template, person); 
>user 
"<h1>Greetings, Herr Doktor Professor Don Johnson</h1>" 

마찬가지로 마지막 줄의 코드에서 템플릿 리터럴은 정상적으로 작동하는 것 같습니다.

브라우저에서 콘솔에서 제대로 작동하지 않는 이유는 무엇입니까?

답변

1

{{variable}} 마크 업이 서버 측 템플릿 엔진에 의해 먼저 해석되는 것으로 보입니다. 어느 쪽을 사용합니까? 진자 2?

확인 - 브라우저 (Ctrl-U)에서 페이지 소스를 확인하고 {{variable}} 개가 존재하는지 확인하십시오. 가능성이 높습니다.

해결 방법은 HTML 페이지에 삽입하는 인라인 JavaScript의 양을 최소화하는 것입니다. 두 줄의 구성이 좋으며 다른 파일에 속하는 것 이상의 것입니다. 그렇지 않으면 서버 쪽 템플릿에서 JavaScript를 생성하고 있습니다. JavaScript는 Mustache 템플릿을 생성합니다. 템플릿은 많은 레이어에 단지 HTML을 생성합니다.

+0

실제로 저는 피스 테쉬를 기반으로하는 콧수염 렌더러를 사용하고 있습니다. 이것이 문제의 일부가 될 수도 있다는 생각이 들었습니다. 나는 그것을 다른 파일로 옮겨 볼 것입니다. – pjc

+0

그게 다 했어, 고마워! – pjc

관련 문제