Knockoutjs "foreach" 等效于非数组对象

Knockoutjs "foreach" equivalent for non array objects

我使用 Knockoutjs 有一段时间了,但有些事情我一直无法解决,我相信一定有一种简单的方法可以解决。

我真的很喜欢嵌套对象,在 html 上使用 "foreach",然后直接访问每个对象的 属性。这样可以使代码简单明了。

问题是有时我使用 observableArray 来仅保存一个元素,以便使用我提到的 "foreach way"。

是否有其他说法 "I'm now within this scope",与 "foreach" 相同的行为。

示例:here

<body>
    <!-- ko foreach: people -->
        <div data-bind="text: name">name</div>
    <!-- /ko -->
    <br />

    <!-- here I would like to say I'm inside 'importantPerson' and therefore name is a property of importantPerson -->
    <!-- <div data-bind="text: name">name (important)</div> -->
    <br />
</body>

您正在寻找 with binding:

The with binding creates a new binding context, so that descendant elements are bound in the context of a specified object.

所以你的代码应该是这样的:

<body>
    <!-- ko foreach: people -->
        <div data-bind="text: name">name</div>
    <!-- /ko -->
    <br />

    <!-- ko with: importantPerson -->
        <div data-bind="text: name"></div> 
    <!-- /ko  -->
    <br />
</body>

演示 JSFiddle.