2014-02-12 1 views
1

웹 사이트를 구축하기 위해 Flask를 사용하고 있습니다. 또한 자산을 사용하여 js 및 css 리소스를 관리합니다. 이제 js 스크립트에 일부 변수를 전달하려고합니다.Flask의 자산에 변수를 전달하는 방법

{% assets "download_js" %} 
    <script> 
     require(["{{ ASSET_URL}}"]); 
    </script> 
{% endassets %} 
: 여기

download_js = Bundle("applog/download.coffee", filters=["jinja2", "coffeescript"], 
       output="gen/js/download.js") 
assets.register("download_js", download_js) 

코드가 내 템플릿 파일 (인 download.html를) 자산을 사용 : 여기

플라스크 초기화 (__ init__.py)이 때 자산을 등록하는 코드입니다

return render_template("download.html", apps=apps, versions=versions) 

과 나는 버지니아를 사용하려면 :

볼 파일 ("view.py")에서 ,이 같은 varibales을 통과 "js"파일의 "apps"을 다음과 같이 수정하십시오 :

DownLoadSelector("appList", {{ apps }}) 

어떻게하면됩니까?

답변

1

귀하의 자산은 고정적이므로 쉽게 변경할 수 없습니다. webassets에 필터를 추가 할 수 있지만 이상한 해킹입니다. 당신이 원하는 일을하려면

, 당신이 그것을 할 수 있습니다 : 당신의 코드에서

{% assets "download_js" %} 
    <script> 
     window.apps = {{ apps }}; 
     require(["{{ ASSET_URL}}"]); 
    </script> 
{% endassets %} 

을, 당신은 단지 apps 전화 : 좋은 idea.Thank에게 당신의

DownLoadSelector("appList", window.apps) 
+0

합니다. –

+0

@WadeCong 답변이 도움이 될 경우, 답변을 정확하게 표시하거나 투표를 통해 투표하십시오 (더 나은 답변을 원할 경우). – iurisilvio

관련 문제