2017-02-23 125 views
0

Привета я использую Meteor с некоторым нефритом (блеском) шаблонами:Как включить код шаблона по условию в нефрит?

template(name="userFormsLayout") 
    section.auth-layout 
    section.auth-dialog 
    +samlLogin 
    //+Template.dynamic(template=content) 

я хотел бы включить комментируемой раздел условия:

template(name="userFormsLayout") 
    section.auth-layout 
    section.auth-dialog 
    +samlLogin 
    var cond = true 
    if(cond) 
     +Template.dynamic(template=content) 

У меня также есть этот JavaScript для этого шаблона

Template.userFormsLayout.helpers({ 
    languages() { 
    return _.map(TAPi18n.getLanguages(), (lang, tag) => { 
     const name = lang.name; 
     return { tag, name }; 
    }); 
    }, 

    isCurrentLanguage() { 
    const t9nTag = i18nTagToT9n(this.tag); 
    const curLang = T9n.getLanguage() || 'en'; 
    return t9nTag === curLang; 
    }, 
}); 

Может ли кто-нибудь помочь?

+0

настраиваете вы УАК '' 'cond''' в вашем фактическом шаблоне? – Sean

+0

см. Обновление, это выглядит точно так, хорошо, я пробовал несколько разных версий с помощью скобок ... но заканчивался всегда с ошибками – Gobliins

+0

Где значение '' 'cond'''? – Sean

ответ

1

Метеорным способом для этого было бы установить переменную cond в помощнике. Пример:

Helper:

Template.userFormsLayout.helpers({ 
    cond() { 
    // a function that returns 'true' or 'false' 
    return true; 
    }, 
}); 

Шаблон:

template(name="userFormsLayout") 
    section.auth-layout 
    section.auth-dialog 
    +samlLogin 
    if(cond) 
     +Template.dynamic(template=content) 
+0

Вы также можете вернуть самоопределенные объекты таким образом? – Gobliins

+1

Да, если вы вернули '' '{name: 'test', value: true}' '', то в вашем шаблоне вы можете использовать '' '{{cond.name}}' '' или '' '{{cond .value}} '' ' – Sean