2013-05-20 5 views
0

У меня есть переменная ток, который используется для установки значения HTML-входДжейд имена атрибутов переменных

так currentchecked может быть либо '' (пустые) или checked=true

Поскольку вы не можете установить HTML атрибутов на false, я не могу это сделать:

input(checked="#{current}") 

Итак, мне нужно использовать переменную как весь атрибут. Возможно ли это с Джейд? Помимо написания строки HTML там

Изменить, чтобы быть более четким. Я хочу, чтобы это сделать:

someVar = "checked=true"  
input(somevVar) // <input checked="true"> 
+0

Пожалуйста, посмотрите на мой отредактированный ответ. Вот как вы это делаете. –

ответ

1

jade supports boolean attribute, такие как checked непосредственно через этот синтаксис:

input(type="checkbox", checked=current) 

Из документов:

Булевы атрибуты также поддерживаются:

ввода (тип = "флажок", проверено)

Булевы атрибуты с кодом будут только выход атрибут, когда верно:

вход (тип = «флажок», проверено = SomeValue)

Убедитесь, что вы с указанием !doctype 5 директивы, а также в шаблоне макета.

Вот пример:

var jade = require('jade'); 

var templateFn = jade.compile('doctype 5\ninput(type="checkbox", checked=current)\n'); 
console.log(templateFn({current: true})); 
console.log(templateFn({current: false})); 

Он выводит:

<!DOCTYPE html><input type="checkbox" checked> 
<!DOCTYPE html><input type="checkbox"> 
+0

Да, но я хочу установить _entire thing_ с переменной. HTML странный, где только отсутствие атрибута будет устанавливать его на false, я не могу просто установить someValue на false – wesbos

+0

Да, я полностью понимаю вашу цель. Я считаю, что нефрит поддерживает это, как я описал. Вы попробовали? –

+0

Удивительный, именно то, что я хотел. Действительно отличная особенность нефрита. Благодаря! – wesbos

0

Вы можете сделать это так:

input(type='checkbox', id='IsPublic', name='IsPublic', value= model.IsPublic) 

Где model.IsPublic от модели передается из вашего ответа в узле.

В приведенном выше примере она опиралась с MongoDB, где модель выглядит следующим образом:

IsPublic: { type: Boolean, default: false} 

в вышеупомянутом случае есть свойство, которое обозначает общественное или не твое будет «ток».

ПРИМЕЧАНИЕ: не следует путать «модель» лично, я передаю все или свойства ядра как объект, называемый «модель» для согласованности. В вашем случае вы можете проходить прямо в собственности, поэтому не путайте эту часть только для уточнения.

+0

Я хочу, чтобы атрибут _entire_ был переменной. Обновлен мой Q, чтобы быть более понятным. – wesbos

+0

@ Wes ahh !!! Хорошее редактирование, не поймало этого. могу ли я спросить, почему, чтобы лучше понять? – origin1tech

+0

'- if (something) {current =" checked = true ";} else {current =" "}.' HTML не позволяет' checked = false', в противном случае я бы просто установил значение false и двигался вместе со своей жизнью. Отсутствие проверенного атрибута, которое вызывает флажок _not быть проверен_ – wesbos

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