2013-09-19 2 views
0

Im пытаются использовать, то «вынести» в ember.js, что я хочу сделать, это указать, какой шаблон контента будет оказывать:Укажите шаблон быть дисплея в «визуализации»

<div> 
{{render "content"}} 
</div> 

<script type="text/x-handlebars" data-template-name="template1"> 
content 1 
<script> 

<script type="text/x-handlebars" data-template-name="template2"> 
content 2 
<script> 


App.ContentView = Ember.View.extend({ 
    templateName: validateSomething() ? 'template1' : 'template2', 
}); 

Вот что У меня есть, но не работает, возможно ли сделать то, что я пытаюсь? Некоторые другие идеи?

Спасибо!

ответ

0

не думаю, templateName: validateSomething() ? 'template1' : 'template2' будет работать. Почему бы не использовать помощники Handelbars {{#if}}{{/if}}, чтобы определить, что делать (в вашем шаблоне контента)?

Обновление: Это может быть более, что вы после:

<div> 
{{render "content"}} 
</div> 

<script type="text/x-handlebars" data-template-name="content"> 
    {{#if condition}} 
    {{view App.Template1View thisBinding="this"}} 
    {{else}} 
    {{view App.Template1View thisBinding="this"}} 
    {{/if}} 
<script> 

<script type="text/x-handlebars" data-template-name="template1"> 
content 1 
<script> 

<script type="text/x-handlebars" data-template-name="template2"> 
content 2 
<script> 

Я не был в состоянии проверить это, но оно должно быть достаточно, чтобы продемонстрировать идею.

+0

Хорошо, я пытался сделать что-то более сложное, но да, используя инструкцию if. – Carorus

+0

У вас также может быть 2 разных вида, а в вашем шаблоне '{{render}}' решать, какой из них нужно отображать с помощью '{{view}}' помощника. – chopper

+0

См. Обновленный ответ – chopper

Смежные вопросы