Javascript jsViews-在对象列表中显示自定义属性

Javascript jsViews-在对象列表中显示自定义属性,javascript,jsrender,jsviews,Javascript,Jsrender,Jsviews,我有一些数据要使用JSView输出。这种情况下,数据数组中的对象可以根据某些条件具有不同的属性/列集。我将这些属性名称存储在设置中,并希望能够使用存储在设置数组中的所有附加列打印数据内容。例如: data = { view_settings: [{ property_name: "prop1" }, { property_name: "prop2" } ], object_li

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

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

我想要实现的是使用视图设置中的属性列表显示对象列表的内容。使用jsViews甚至可以做到这一点吗?

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

为了做到这一点,我们需要两次别名对象。下面是我的简化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>

名称
{{用于视图设置}
{{>property_name}
{{/for}}
{{for object_list~ view_settings=#data.view_settings}}
{{>name}
{{for~view_settings~object=#data}
{{:~对象[属性名称]}
{{/for}}
{{/for}}
希望这能节省一些时间;)