2014-06-04 3 views
1

Мне любопытно, имеет ли усы синтаксис, противоположный синтаксису «Перевернутый выбор» {{^foo}}.Против «инвертированного выделения» с усами

Допустим, у нас есть данные:

{ 
    people: [ 
    { name: "Alice" }, 
    { name: "Bob" }, 
    { name: "Mallory" } 
    ] 
} 

и шаблон:

<h3>People</h3> 
<ul> 
    {{#people}} 
    <li>{{name}</li> 
    {{/people}} 
</ul> 

Если мы хотим, чтобы добавить элемент, если нет людей, мы просто добавить что-то вроде:

{{^people}}<li>No people</li>{{/people}} 

Но в моем случае я не хочу показывать <h3> и <ul>, если th нет людей.

Синтаксис как {{?people}} (представляющий противоположную/булево отрицание {{^people}}) был бы идеальным для этой ситуации но одна существует?


Другой альтернативой было бы для предварительной обработки данных, добавив значение

has_people = Boolean(people.length) 

и используя {{#has_people}}, но это кажется нелогичным и против логики менее (и я использую этот термин слегка) парадигма.

ответ

0

Простым решением, казалось, было добавить функциональность самостоятельно.

Я разветвил репозиторий Mustache.js с изменениями, необходимыми для введения селектора {{? data }}. На английском языке его можно было бы читать как «Когда это правда, или есть предметы в пределах data».

Repository | Diff 1 | Diff 2

+0

Почему бы просто не использовать Ручки, если вы проходите все это? Функциональность уже есть. – Nit

+1

Возможно, вы правы. Раньше я использовал рули, но для этого проекта я использовал простой Усы. Я обнаружил, что это привело к очень чистым шаблонам. – azz

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