0

私はこのJSONを持っています:

{ 
status: "ok", 
posts: [ { 
          id: 1362, 
          type: "ser", 
          slug: "av-ss-xiii-3",

           fields: { 
                     price: [ "550" ], 
                     sale: [ "rent" ] 
            } 
       } ]
}

そして、私は口ひげを使ってこのように解析していますが、ご覧のとおり...フィールドはオブジェクトの配列ではなく、配列値を持つ2つの属性を持つオブジェクトです...

{{#posts}}
<h1>{{type}}</h1>
        {{#fields}}
            <p> {{price}}:{{value}}</p>
         {{/fields}} 
{{/posts}}

解析中に間違いを犯したと思います。価格値では機能しないためです。

4

2 に答える 2

2

あなたのテンプレートはもうすぐ機能します。私が見ることができる問題は、 {{value}} がフィールドオブジェクトに存在しないキーを期待していることです。あなたのテンプレートは現在、価格をコロンで出力し、その後何も出力しません:

<h1>ser</h1>
<p> 550 :</p>

おそらく、{{value}} は 550 を出力すると思っていたのでしょう。どちらの場合も、値が [ "550" ] のように配列でラップされているのは少し奇妙です。ただし、それぞれに要素が 1 つしかなく、これによってテンプレートが複雑になることはないため、これは問題ではありません。私はあなたの希望する出力が何であるかを推測することしかできませんが、実際の例であなたのテンプレートをデモンストレーションさせてください.

{{#posts}}
    <h1>{{type}}</h1>
    {{#fields}}
    <p> {{price}} : {{sale}}</p>
    {{/fields}}
{{/posts}}

これにより、データの次の HTML が出力されます。

<h1>ser</h1>
<p> 550 : rent</p>

説明する jsFiddle を次に示します。複数の投稿を含むテンプレート

データがコレクションでどのようにレンダリングされるかを示すために、自由に 2 番目の投稿オブジェクトを作成しました。また、価格と販売値の両方を出力するつもりかもしれないと推測しました。

これについてはすでに理解していると思いますが、明確にするために、フィールドは配列ではなくオブジェクトであるため、 {{#fields}} ... {{/fields}} は条件のように機能します。それはいいです。fields が偽の場合 (未定義または false など)、テンプレートは p 要素をレンダリングしません。

jsFiddle で jQuery を使用しましたが、テンプレートと DOM 要素にアクセスするためだけに使用したことに注意してください。

ご不明な点がございましたら、お気軽にお問い合わせください。それが探しているものでない場合は、質問を編集して、目的の出力を説明してください。

于 2013-03-08T00:47:20.393 に答える
0

最後に私はそれを見つけました...それは「方法」の問題でした.toHtmlを使用すると配列では何も得られません....renderを使用すると正常に動作します! ありがとう

于 2013-03-17T15:06:09.433 に答える