9

我需要将一些 HTML 绑定到一个对象,但我的问题是我在开发时不知道该对象的属性。

我的主视图模型中有一个selectedItem属性,我已绑定到我的 HTML 中的一个部分:

<div data-bind="with: selectedItem">

</div>

现在我想根据属性名称和属性值生成一个表:

<div data-bind="foreach: [WHAT DO I PUT HERE?]">
    <label class="control-label"><span data-bind="text: [OR HERE?]" /></label>
</div>

我真的不知道该怎么做。任何帮助是极大的赞赏。

另外,只是稍微扩展一下,我想以不同的方式处理绑定对象的属性,例如,如果该属性只是一个原始类型,则将其输出,但如果它是另一个对象/数组,则对其进行特殊处理。

这可以做到吗?

4

2 回答 2

13

如果其他人正在寻找绑定简单对象的属性。你可以这样做...

<table>
    <tbody data-bind="foreach: arrayOfObjects">
        <tr data-bind="foreach: Object.keys($data)">
            <td data-bind="text: $parent[$data]"></td>
        </tr>
    </tbody>
</table>

注意:旧版浏览器不支持 object.keys,但您可以使用它来添加向后兼容性http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation

于 2013-04-23T11:43:16.967 回答
4

是一个使用计算的 observable在运行时选择要显示的数据的工作示例。动态选择的模板也用于根据要渲染的数据类型(数组或标量)来渲染数据。

于 2012-10-02T08:13:20.397 回答