이것은 매우 기본이지만 Handlebars의 기본 제공 기능을 사용할 수없는 이유를 알아 내려고 노력했습니다. #if helper 내 템플릿의 각 반복. 내가 {{# 만약}}, 크롬 (또는 Safari) 충돌 및 콘솔 보고서에 대한 참조를 삽입 두 번째 :내 #each 루프 내 핸드백 템플릿 내에서 #if 루프를 사용하면 브라우저 페이지가 손상됩니다.
Uncaught RangeError: Maximum call stack size exceeded
meta
targetSetFor
sendEvent
Ember.Evented.Ember.Mixin.create.trigger
Ember.CoreView.Ember.Object.extend.trigger
newFunc
(anonymous function)
Ember.View.Ember.CoreView.extend.invokeRecursively
newFunc
(반복 여러 번)
은 왜 나에게 재귀 오류의 원인이되는 타다 남은 것?
<div id="gridChannelListDiv" tabindex="0">
{{#each item in content}}
{{#if item.hilight}}
<div class="gridCellHilight">
...
</div>
{{else}}
<div class="gridCell">
...
</div>
{{/if}}
{{/each}}
</div>
{{#if}} 문이 아무런 효과가 없어도 발생합니다.
<div id="gridChannelListDiv" tabindex="0">
{{#each item in content}}
{{#if}}{{/if}} // this line will cause instant "oh snap" crash
<div class="gridCell">
{{item.name}}
</div>
{{/each}}
</div>
연관된 ArrayController는 "컨텐츠"5 엠버 객체의 간단한 목록을 포함하고 내가 # 만약을 삽입 할 때까지 템플릿은 잘 작동합니다. 방해 받고 있습니다.
대단히 감사합니다. 그건 좁은 것을 나에게 도움이된다. 나는 계속해서 조사 할 것입니다. 초기 추측이 맞을 가능성이 있습니다. 제가 가입 한 팀은 몇 가지 버전의 라이브러리를 사용하고 있습니다. 아마 그들은 단지 부러 졌을 것입니다. 감사. –
어떤 일이 벌어지고 있는지 결정을 내리지 못했기 때문에 약간의 추측이있었습니다. 그러나 동적으로로드되고 컴파일 된 템플릿 파일을 가지고 있으며 뷰에 템플릿에 대한 부실 코딩 된 참조가있는 것으로 보입니다 . 어쨌든이 방법은 재귀 루프를 설정하는 것이지만 #if가 트리거하는 이유는 확실하지 않지만 템플릿에 대한 하드 코딩 된 참조를 제거한 후에는 예상대로 동작하는 것으로 보입니다. –