2

以下のコードを見てください

        for story in book 
            if story.title.length < 140
                - var storyTitle = story.title;
            else
                - var storyTitle = story.title.substring(0, 140) + '...';

            .tiles
                a(href= 'http://' + story.link)
                    img(src=story.thumbnail, width='150', height='150')
                p Title: #{storyTitle}
                p Date: #{story.time}
                p Author: #{story.authorName}

これは私のために働いています。ただし、story.attribute を使用して回避できる場合と、#{story.attribute} を使用する必要がある場合があることに困惑しています。

たとえば。私はラインを使用する場合

p Title: storyTitle

口ひげがない場合は、ブラウザに「Title: storyTitle」という文字列を表示するだけです。

別の例として、 を使用するimg(src=#{story.thumbnail}, width='150', height='150')と機能せず、ブラウザに html 文字列 (%20%20... 何か...) が表示されます。

それで、何が得られますか?

4

2 に答える 2

7

簡単に言うと

等号の後と(=)コード ブロック内に中括弧はありません。それ以外の場所では#{}.

于 2013-02-05T21:33:50.043 に答える
4

違いは、タグの内容と属性にあります。属性では、次のように中括弧なしで変数を使用できます

img(src=story.thumbnail

属性の値にテキストを入れることはできないため、文字列でなければなりません:

img(src="/images/story.jpg")

あなたはただすることはできません

img(src=/images/story.jpg)

ただし、タグのコンテンツでは、ハッシュとブレースを使用して、#{}どのビットが変数で、どのビットが単なるテキストであるかを Jade が認識できるようにする必要があります。

タグ属性でハッシュとブレースを使用する場合は、次のようにします。

img(src="#{story.thumbnail}")
于 2013-02-05T17:52:25.507 に答える