いくつかのhtml要素の属性をその場で作成したいと思います。
私の場合、に応じて無効な属性を設定したい(または設定したくない)user.role
。
したがって、user
フィールドを編集する権限がある場合は、要素に無効な属性を設定したくありません。そうでなければ、私はそれが欲しいです。
私はこれらのアプローチでこれを行うことができることを知っています:
-アプローチ1-条件付きを使用する
if (user.role === 1)
input(type='text', name='foo')
else
input(type='text', name='foo', disabled)
-アプローチ2-プレーンHTML
- var disabledAttr = (user.role === 1) ? "disabled" : "";
| <input type="text" name="foo" #{ disabledAttr} />
いくつかのコードを繰り返す必要があるため、アプローチ1は良くありません。アプローチ2では、コードを繰り返す必要はありませんが、Jadeマークアップの代わりにプレーンHTMLを使用する必要があります。
私はこのようなことを試みました:
input(type='text', name='foo', #{ disabledAttr} )
ただし、jadeは次のコードを生成します。
<input type="text" name="foo" disabledattr="" />
より良いアイデアはありますか?