0

我有一些想要使用 jsViews 输出的数据。情况是数据数组中的对象可以根据某些条件具有不同的属性/列集。我将这些属性名称存储在设置中,并希望能够打印数据内容,并将所有附加列存储在设置数组中。例如:

data = {
    view_settings: [{
            property_name: "prop1"
        },
        {
            property_name: "prop2"
        }
    ],
    object_list: [{
            id: "180",
            name: "test1",
            prop1: "test-prop-1",
            prop2: "test-prop-2"
        }
    ]
}

我想要实现的是使用 view_settings 中的属性列表显示 object_list 的内容。这甚至可以使用 jsViews 吗?

4

1 回答 1

1

为你的问题找到答案的最好方法是先问它,理解它(橡皮鸭法),然后找到答案。

为了做到这一点,我们需要对对象进行两次别名。这是我简化的 jsViews 模板代码,它将正确显示来自我的问题的示例中的数据:

<script id="template1" type="text/x-jsrender">
    <table>
        <thead>
            <tr>
                <th>Name</th>
                {{for view_settings}}
                <th>{{>property_name}}</th>
                {{/for}}
                <th></th>
            </tr>
        </thead>
        <tbody>
            {{for object_list ~view_settings=#data.view_settings}}
            <tr>
                <th>{{>name}}</th>
                {{for ~view_settings ~object=#data}}
                <th>{{:~object[property_name]}}</th>
                {{/for}}
                <th></th>
            </tr>
            {{/for}}
        </tbody>
    </table>
</script>

希望这可以节省别人的时间;)

于 2013-04-18T21:17:29.510 回答