Haml에 인라인 JavaScript를 어떻게 포함하고 있습니까?
템플릿에 포함 할 Haml에 이와 같은 내용을 작성해야합니까?
<script>
$(document).ready( function() {
$('body').addClass( 'test' );
} );
</script>
:javascript
$(document).ready( function() {
$('body').addClass( 'test' );
} );
문서 : http://haml.info/docs/yardoc/file.REFERENCE.html#javascript-filter
Chris Chalmers가 대답에서 수행하는 작업을 수행 할 수 있도록 HAML이 JavaScript를 구문 분석하지 않도록해야합니다. 이 방법은 실제로 다른 유형을 할 때 유용 text/javascript
합니다 MathJax
.
plain
필터를 사용하여 HAML이 확장을 구문 분석하고 잘못된 중첩 오류가 발생하지 않도록 할 수 있습니다 .
%script{type: "text/x-mathjax-config"}
:plain
MathJax.Hub.Config({
tex2jax: {
inlineMath: [["$","$"],["\\(","\\)"]]
}
});
그래서 위의 : javascript 작동하는 :) 그러나 HAML은 생성 된 코드를 CDATA에서 다음과 같이 래핑합니다.
<script type="text/javascript">
//<![CDATA[
$(document).ready( function() {
$('body').addClass( 'test' );
} );
//]]>
</script>
다음 HAML은 typekit 또는 google Analytics 코드를 포함하기위한 일반적인 태그를 생성합니다.
%script{:type=>"text/javascript"}
//your code goes here - dont forget the indent!
haml에서 fileupload-jquery 를 사용하고 있습니다. 원래 js는 다음과 가변적입니다.
<!-- The template to display files available for download -->
<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-download fade">
{% if (file.error) { %}
<td></td>
<td class="name"><span>{%=file.name%}</span></td>
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
<td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
{% } else { %}
<td class="preview">{% if (file.thumbnail_url) { %}
<a href="{%=file.url%}" title="{%=file.name%}" rel="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
{% } %}</td>
<td class="name">
<a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
</td>
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
<td colspan="2"></td>
{% } %}
<td class="delete">
<button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}">
<i class="icon-trash icon-white"></i>
<span>{%=locale.fileupload.destroy%}</span>
</button>
<input type="checkbox" name="delete" value="1">
</td>
</tr>
{% } %}
</script>
처음에는 html2haml:cdata
에서 변환을 사용하여 제대로 작동하지 않습니다 (콜백에서 삭제 버튼으로 관련 구성 요소를 제거 할 수 없음).
<script id='template-download' type='text/x-tmpl'>
<![CDATA[
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-download fade">
{% if (file.error) { %}
<td></td>
<td class="name"><span>{%=file.name%}</span></td>
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
<td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
{% } else { %}
<td class="preview">{% if (file.thumbnail_url) { %}
<a href="{%=file.url%}" title="{%=file.name%}" rel="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
{% } %}</td>
<td class="name">
<a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
</td>
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
<td colspan="2"></td>
{% } %}
<td class="delete">
<button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}">
<i class="icon-trash icon-white"></i>
<span>{%=locale.fileupload.destroy%}</span>
</button>
<input type="checkbox" name="delete" value="1">
</td>
</tr>
{% } %}
]]>
</script>
그래서 나는 :plain
필터를 사용 합니다 :
%script#template-download{:type => "text/x-tmpl"}
:plain
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-download fade">
{% if (file.error) { %}
<td></td>
<td class="name"><span>{%=file.name%}</span></td>
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
<td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
{% } else { %}
<td class="preview">{% if (file.thumbnail_url) { %}
<a href="{%=file.url%}" title="{%=file.name%}" rel="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
{% } %}</td>
<td class="name">
<a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
</td>
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
<td colspan="2"></td>
{% } %}
<td class="delete">
<button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}">
<i class="icon-trash icon-white"></i>
<span>{%=locale.fileupload.destroy%}</span>
</button>
<input type="checkbox" name="delete" value="1">
</td>
</tr>
{% } %}
변환 된 결과는 원본과 정확히 동일합니다.
따라서이 :plain
시나리오에서 필터는 내 요구에 맞습니다.
: plain 필터링 된 텍스트를 구문 분석하지 않습니다. 이것은 HTML 태그가없는 큰 텍스트 블록에 유용합니다. 또는-파싱됩니다.
자세한 내용은 haml.info 를 참조하십시오
참고 URL : https://stackoverflow.com/questions/9744169/how-do-i-include-inline-javascript-in-haml
'IT' 카테고리의 다른 글
마이너스 추가 원격 지점 (0) | 2020.07.17 |
---|---|
Swift에서 사용하여 맵 또는 축소 (0) | 2020.07.17 |
iTunesConnect / App Store Connect에서 앱을 삭제하는 방법 (0) | 2020.07.17 |
SVN- 업데이트 중 체크섬 불일치 (0) | 2020.07.17 |
대시와 함께 argparse에 옵션이 있음 (0) | 2020.07.17 |