2012-12-05 3 views
3

나는 약 한 달 동안 plunker를 사용 해왔다. 나는 backbonejs plunker를 만들고 있었는데 Underscore가 내 템플릿 설정을 잃어 버렸고 ERB 스타일 템플릿으로 돌아가는 반면 콧수염 스타일 구문은 {{ myData }}입니다. 내 app.js (항상 내 앱에서 수행)의 값을 설정 중이지만 어떤 이유로 든 ERB <%=boo%>으로 다시 변경됩니다. 누군가 내 템플릿 설정을 정리할 수있게 도와 줄 수 있습니까? plunker using underscore templating 크롬 개발 도구 또는 방화 광에서 콘솔 출력을 확인해야합니다.밑줄 서식 파일 설정을 유지할 수있는 방법은 무엇입니까?

감사의 말에 감사드립니다. 내 app.js에 console.log(_.templateSettings)를 잘 설정 한 후 파일을 때 나는

_.templateSettings = { 
    interpolate: /\{\{(.+?)\}\}/g, 
    evaluate: /\[\[(.+?)\]\]/g 
}; 

을 시도, 모든 것이 올바른 것 같다,하지만 내 템플릿은 처리되지 않습니다. 내보기를 휴식하고 동일한 console.log()를 실행할 수 있으며 ERB 스타일로 다시 전환 된 것을 볼 수 있습니다. 아무도 내 설정을 스틱 만드는 방법을 알고 있습니까? 아마도이 방법을 여러 번 사용했기 때문에 문제가되지 않을 수도 있습니다.

일반적으로 트릭입니다. 나는 심지어 시도해 ... window._ = _; 어떤 도움, 팁, 트릭 등을위한

덕분에 ...

답변

1

당신은 실행 문제의 순서가 있습니다. 누군가가 app.init()를 호출 할 때까지

var app = { 
    init: function() { 
    _.templateSettings = { 
     interpolate: /\{\{(.+?)\}\}/g, 
     evaluate: /\[\[(.+?)\]\]/g 
    }; 
    window._ = _; 
    }, 
    //... 

그래서 템플릿 설정이 적용되지 않습니다 : 귀하의 app.js이 말한다. 우리가 main.js에보기 중 하나를 살펴있는 경우, 우리는 다음과 같은 것들을 볼 수 있습니다 :

Zurg.Views.AltContent = app.View.extend({ 
    #... 
    template: _.template([...].join('')), 
    #... 

그래서 _.template 호출 main.js로드 및 구문 분석하지만 app.init() 나중에 때까지 호출되지 않습니다되는 동안 발생합니다.

당신이 일이 순서대로 일어날를 준비하기 만하면됩니다 :

  1. 로드 libaries이 (jQuery를, 밑줄, 백본, ...)
  2. 당신의 구분 기호를 사용하는 _.templateSettings을 조정합니다.
  3. 보기를로드하십시오. 당신이 이동하는 경우

_.templateSettingsapp.init 외부에 :

_.templateSettings = { 
    interpolate: /\{\{(.+?)\}\}/g, 
    evaluate: /\[\[(.+?)\]\]/g 
}; 

var app = { 
    init: function() { 
    // Whatever you really need to initialize things goes here... 
    }, 
    //... 

은 모든 것을 해결해야한다. BTW, 당신의 window._ = _; 트릭이 아무 쓸모가 없었기 때문에 나는 그것을 꺼 냈습니다. 그리고 escape 정규 표현식도 _.templateSettings에 포함해야합니다. 필요하지는 않지만 완벽 할 수 있습니다.

+0

감사합니다. 타이밍 유형 문제라고 생각했습니다. 굉장해! – Hcabnettek