0

使用していた自分のバージョンではなく、jsRenderを使用してテンプレートを作成しようとしていますが、次のように表示されます: "Uncaught JsRender Error:Syntax error Unmatched or missing tag:" {{/ for}} "in template: "の後に私のテンプレート全体が続きます。

これが私のコードの切り捨てられたバージョンです、何が起こっているかについてのアイデアはありますか?それとも、ネストされたforループだけですか?

<div class="page" id="{{:info.id+info.name}}">
    {{for sources}}
    <header class="feed-title">
        <div class="feed-title-content">
            <span class="feed-title-text">{{:title}}</span>
        </div>
    </header>
    <section class="row">
        <div class="scroll-left"></div>
        <div class="row-scroll">
            {{for articles}}

                          // An if, else and some standard content insertion stuff is/was here

            {{/for}}
        </div>
        <div class="scroll-right"></div>
    </section>
    {{/for}}
</div>

私の配列構造を示すchromeの開発ツールのスクリーンショット:

拡大図のスクリーンショット1:

拡大図のスクリーンショット1

そして崩壊した:

そして崩壊した

何が起こっているのかについて何かアイデアはありますか?

編集:言及するのを忘れました、私はジョンパパのコードを使用して外部ファイルからこれをロードしています

編集:デモとコード:

私の配列のChromeの開発ツール出力:

Object
    info: Object
    sources: Array[1]
        0: Object
            articles: Array[7]
                0: Object
                1: Object
                2: Object
                3: Object
                4: Object
                5: Object
                6: Object
            link: "http://lifehacker.com"
            title: "Lifehacker"

デモ: http: //jsfiddle.net/SO_AMK/3J7AE/

そして、機能するネストされた配列の:

Object
    foo: "names"
    testData: Array[2]
        0: Object
            markup: "<span style='background: yellow'>John</span>"
            name: "John"
            secondary: Array[1]
                0: Object
                1: Object

デモ: http: //jsfiddle.net/SO_AMK/Vf8Bq/

4

2 に答える 2

3

そうです、問題はJavaScriptオブジェクトにあるようです。ループするプロパティは、オブジェクトではなく配列である必要があると思います。テンプレートは、コメントで指定したjsfiddleの例のtestdataで問題なく機能します。

そうでない場合:オブジェクトのJSONシリアル化を追加できますか?テンプレートは機能しているようです:http://jsfiddle.net/6wcX8/1/

于 2012-07-19T14:44:32.283 に答える
2

jsfiddles を見ると、上記のコードに実際には表示されていないセクションのタグが、{{if}} と {{else}} を使用して、正しい構文を使用していないという問題がありました。

彼らは使用しました:

{{for articles}}
    {{if img === false }}
        ...
    {{/if}}
    {{else}}
        ...
    {{/else}}
{{/for}}

それ以外の

{{for articles}}
    {{if img === false }}
        ...
    {{else}}
         ...
    {{/if}}
{{/for}}

{{if}} および {{each}} タグのこのデモ サンプルを参照してください。

于 2012-07-24T01:56:09.357 に答える