javascript - knockout JS 绑定(bind)到对象的属性

标签 javascript html mvvm knockout.js

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

我的主视图模型中有一个 selectedItem 属性,我已将其绑定(bind)到 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>

我真的不知道该怎么做。非常感谢任何帮助。

另外,稍微扩展一下,我想以不同的方式处理绑定(bind)对象的属性,例如,如果属性只是一个基本类型,就输出它,但如果它是另一个对象/数组,那么处理它特别地。

这可以做到吗?

最佳答案

如果其他人希望绑定(bind)一个简单对象的属性。你可以这样做......

<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

关于javascript - knockout JS 绑定(bind)到对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12686324/

相关文章:

javascript - 如何根据信息表绘制动态折线图?

javascript - 当选择当前行时 KnockoutJS 检查单选按钮

c# - 理解 MVVM 中的分离

android - 使用MVVM在RecyclerView的网格和线性之间切换的更好方法是什么?

c# - 如何在 BarChart 中绑定(bind)列表中的值

javascript - 检查div的所有 child 是否都上课

javascript - 在幻灯片中添加淡入淡出效果 (Javascript)

javascript - 带有 knockout 的 Chrome Bug?

html - 包括具有相同样式的文本区域

php - 在 PHP 中显示 404 页面的正确方法?