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

时间:2013-04-18 20:55:44

标签: javascript jsrender jsviews

我想要使用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吗?

1 个答案:

答案 0 :(得分: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>

希望这可以节省时间;)