web-dev-qa-db-ja.com

Loop in Jade(現在「Pug」として知られている)テンプレートエンジン

for(int i=0; i<10; i++){}のような単純なループを使用します。

Jadeエンジンでどのように使用しますか? Node.jsを使用しており、expressjsフレームワークを使用しています。

52
Huy Tran

例えば:

- for (var i = 0; i < 10; ++i) {
  li= array[i]
- }

詳細なドキュメントについては https://github.com/visionmedia/jade が表示される場合があります。

87
qiao

ノードを使用して、もののコレクションを持っています@stuffそして次のようにアクセスします。

- each stuff in stuffs
  p
    = stuff.sentence
72
thenengah

珍しいですが、きれいな方法

インデックスなし

each _ in Array(5)
  = 'a'

印刷されます:aaaaa

インデックス付き

each _, i in Array(5)
  = i

印刷されます:01234

:上記の例では、jadeのval反復構文のeachパラメーターを_に割り当てました。 undefined

25

これは、ループを含む非常に単純なjadeファイルです。ジェイドは空白に非常に敏感です。ループ定義行(for)の後に、ループ内に入れたいものにindent(tab)を与える必要があります。 {}なしでこれを行うことができます:

- var arr=['one', 'two', 'three'];
- var s = 'string';
doctype html
html
    head
    body
        section= s
        - for (var i=0; i<3; i++)
            div= arr[i]
16
Mohsen

別の可能性を追加するだけで、配列を反復処理し、カウントを維持しようとしている人を助けることができます。たとえば、次のコードはitemsという名前の配列を通過し、最初の3つの項目のみを表示します。 eachifはネイティブジェイドであり、ハイフンは不要です。

ul
  - var count = 0;
  each item in items
    if count < 3
      li= item.name
    - count++;
9
k00k

whileループを使用して速度を上げることもできます(こちらを参照してください: http://jsperf.com/javascript-while-vs-for-loops )。また、はるかに簡潔で読みやすい私見:

i = 10
while(i--)
    //- iterate here
    div= i
5
SqrBrkt

Pug(「Jade」から名前を変更)は、フルスタックWebアプリ開発用のテンプレートエンジンです。 HTMLを書くためのきちんとした構文を提供し、厳密な空白インデント(Pythonなど)を維持します。 JavaScript APIで実装されています。この言語は、主に、それぞれとwhileの2つの反復構造をサポートしています。 「for」を「each」の代わりに使用できます。こちらの言語リファレンスをご覧ください。

https://pugjs.org/language/iteration.html

ここに私のスニペットの1つがあります。 pug_screenshotでの各/反復

0