렌더 도우미를 사용하여 렌더링 할 모델, 경로, 컨트롤러를 동적으로 선택하기위한 템플릿은 outlined in this question (및 다른 곳)과 같습니다. 문제는 업그레이드 악몽으로 발전하기 전에 문제를 잡으려고 Ember.ENV.RAISE_ON_DEPRECATION
플래그가 설정된 상태로 실행하고 싶다는 것입니다. 나는이처럼 핸들 도우미에서 Ember.Render를 호출 오전 :call()을 사용할 때 Emble Render가 depotelated quoteless 매개 변수에 대해 불평을 멈추는 방법?
{{#each module in modules}}
<div class="tab-content" {{bind-attr class="module.active:active"}}>
{{renderModuleEdit module module}}
</div>
{{/each}}
문제는 렌더링이 'quoteless 매개 변수'에 대한 테스트에 실패
Ember.Handlebars.registerBoundHelper('renderModuleEdit', function(callingContext, module, options) {
var modelName = callingContext.get('type').get('modelName');
return Ember.Handlebars.helpers.render.call(callingContext, "edit_" + modelName, modelName, options);
});
템플릿이이 코드를 가지고 , 비록 직접 핸들 바 템플릿 문법보다는 call()
을 사용하고 있습니다. 테스트는 출처에서 this line에 정의되어 있습니다. 실제 테스트는 options.types[0] !== 'ID'
이고 options 매개 변수는 위의 첫 번째 코드 블록에서 사용할 수 있지만 1 st 유형을 'ID'
에서 벗어나 변경할 수 있습니다. 에서으로 바꿀 수 있습니다. 그러면 나중에 뭔가 미묘하게 깨질 수 있습니다. 오류 메시지가로를 통해 제공 :이 전화를 걸 {{render edit_Intro}}
를 사용하고 있지 않다으로
Uncaught Error: Using a quoteless parameter with {{render}} is deprecated. Please update to quoted usage '{{render "edit_Intro"}}.
, 나는이 문제를 해결하는 방법을 모른다. 템플릿 코드를 {{renderModuleEdit 'module' 'module'}}
으로 변경하면 내 renderModuleEdit의 매개 변수가 필요한 모델 인스턴스가 아닌 'module'
의 문자열로 나타납니다.
이 테스트가 실제로 무엇인지에 대한 이해가 없으며 'quoteless'대 'quoted'매개 변수가 의미하는 것조차도 느끼지 않습니다. 누군가 이것을 설명 할 수 있습니까? 등록 된 바운드 핸들바 도우미에서 render를 호출 할 때이 deprecation 경고 주위에 경고가 표시됩니까?
그래, 나는'helpers.render'으로 디버깅 "STRING"이 다른 허용 된 속성 중 하나임을 발견했습니다. 이러한 옵션이 전달되는 ember 코드의 모든 모서리를 찾지 못했기 때문에 실수로 다른 것에 영향을 미칠 수 있습니다. –