2014-03-27 1 views
3

flask와 angular.js를 모두 사용하려고합니다. 플라스크로 페이지를 렌더링하는 동안 각도 j와 두 개의 템플릿 메소드 (태그) 충돌을 추가하려고했습니다. (그렇다면를플라스크 : 플라스크에 템플릿의 일부를 처리하지 않도록 지시 할 수 있습니까?

  • 나쁜 생각은 모든 라운드, 나는 희망을 포기해야한다, 또는
  • 내가 내 자신의 솔루션을 출시한다 :

    <div> 
        {{ flaskReplacesThis }} 
    </div> 
    <div> 
        {%?! Ignore this, flask! %?} 
        {{ angularReplacesThis }} 
        {%?! endIgnore %?} 
    </div> 
    

    그 것이다 :

    내가 좋아하는 뭔가 원하는 , 어떻게?).

나는 인터넷 검색을 시도하고 완전히 이해할 수있는 것을 보지 못했다.

답변

9

raw 블록을 사용할 수 있습니다. 내부의 모든 내용은 jinja2 구문으로 처리되지 않습니다.

<div> 
    {{ flaskReplacesThis }} 
</div> 
<div> 
    {% raw %} 
    {{ angularReplacesThis }} 
    {% endraw %} 
</div> 

여기에 documentation link입니다.

+0

이 감사의 공식 문서에 대한 here를 참조 말한다! :-) 지금 내 각도 대체, 롤 부러있다. 그러나 나는 그것이 내가 잘못하고있는 것이라고 확신합니다 ... – babyshark

3

일반적으로 서버 쪽 템플릿 (jinja2)과 클라이언트 쪽 템플릿 (각도)을 함께 사용하는 것은 좋지 않지만 가능합니다. anglejs의 $interpolateProvider 기능을 사용하면 사용자 정의 구분 기호 세트를 정의 할 수 있습니다. jinja2뿐만 아니라 구분 기호로 {{}}을 사용하기 때문에, 당신은 다른 무언가를 사용하는 각 말할 수있을 수 있습니다, [[]]

<script> 
var customInterpolationApp = angular.module('customInterpolationApp', []); 

customInterpolationApp.config(function($interpolateProvider) { 
$interpolateProvider.startSymbol('[['); 
$interpolateProvider.endSymbol(']]'); 
}); 
....... 

+0

우 ... 그게 너무 멋지 네요. 고맙습니다! 그래, 나는 이것이 전체적으로 나쁜 생각이라는 느낌을 가졌지 만 ... 이것이 2 ~ 3 가지를 동시에 배우는 나의 방법이라고 생각한다. – babyshark

+0

문제 없습니다. 다른 구분자를 사용하여 나중에 코드를 디버그하려고 할 때 특히 혼란이 없도록하는 것이 좋습니다. – codegeek

+0

Erm, 서버 및 클라이언트 측 템플릿을 혼합해도 문제가 없습니다. Jinja2는 단순히 Angular가 전달하는 HTML 파일을 출력합니다. 사실 매우 간단한 캐시 - 버스트 처리에서부터 Jinja2 매크로에 이르기까지 모든 것이 매우 유용합니다. –

관련 문제