0

我正在尝试将模板与 jsRender 而不是我自己的版本放在一起,但是,我不断收到以下信息:“未捕获的 JsRender 错误:语法错误不匹配或缺少标签:模板中的“{{/for}}”: " 后面跟着我的整个模板。

这是我的代码的截断版本,关于发生了什么的任何想法?还是只是嵌套的 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

并崩溃:

并且崩溃了

关于发生了什么的任何想法?

编辑:忘了提,我正在使用 John Papa 的代码从外部文件加载它

编辑:演示和代码:

我的阵列的 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 回答