Knockoutjs" foreach"非数组对象的等价物

时间:2015-08-01 03:53:38

标签: javascript arrays templates foreach knockout-3.0

我一直在使用Knockoutjs,但有些东西我无法解决,而且我确信必须有一个简单的方法来实现它。

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

问题在于,有时我使用observableArray只保存一个元素,以便使用" foreach方式"我提到了。

是否有其他说法"我现在在这个范围内",与" 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>

1 个答案:

答案 0 :(得分:1)

您正在寻找with binding:

  

with绑定创建一个新的绑定上下文,以便后代元素绑定在指定对象的上下文中。

所以你的代码看起来像这样:

<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