2012-03-12 4 views
1

knockout.js를 통해 클라이언트 측 템플릿을 사용하는 사이트에서 작업하고 있습니다.머리 부분에 문자열을 쓰십시오.

백엔드 API 및 로그인은 레일스로 작성됩니다.

내가하고 싶은 일은 각각의 클라이언트 측 HTML 템플릿을 별도의 파일로 가지고 템플릿을 사용하여 페이지로 옮겨 놓는 것입니다. 자바 스크립트 파일을 들여 올리는 것과 비슷합니다.

디렉토리의 각 템플릿은 app =/text/html 유형의 스크립트 태그로 페이지에 추가되어야합니다.

지금까지 실제 템플릿 콘텐츠에 이르기까지 head 속성의 html.erb 파일에 넣고 싶습니다. 그러나 항상 HTML이 아닌 일반 텍스트로 Body에 저장됩니다. 내가 지금처럼 .erb 레이아웃 파일에 추가하려고

def html_templates 
    output = '' 
    templates = Dir.glob 'app/assets/templates/*' 
    templates.each { |template| 
     file = File.open(template, "rb") 
     output += '<script type="text/html" id="'+(File.basename template, '.html')+'">' 
     output += file.read 
     output += '</script>' 

    } 
    return output 

    end 

:

<head> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <%= html_templates %> 
    <%= stylesheet_link_tag "application" %> 
    <%= javascript_include_tag "application" %> 
    <%= csrf_meta_tags %> 
</head> 

그러나 출력이 항상에 넣어

내 컨트롤러에 다음과 같은 방법을 정의한 모든 html이 이스케이프 된 본문

또한 누구나 해결해야 할 더 좋은 해결책이있는 경우 제발, 추천 해.

+1

이 시도 이스케이프하지 않으 때마다 raw 방법을 사용해야합니다 :) : <% = 원시 html_templates %> 그것을했다 –

+0

! 당신이 대답을 자유롭게 추가하고 싶다면 :) – Morten

답변

1

덕분에 이렇게 기본적으로 당신은 당신이 출력

관련 문제