2

我对 Knockout 很陌生,并试图探索它。我知道如何使用 foreach 但对“与”感到困惑。我刚刚浏览了 With 的淘汰赛文档(http://knockoutjs.com/documentation/with-binding.html)。还是喜欢:

1)我什么时候应该使用“with”

2) with 是 foreach 的替代品吗?

3)“with”和foreach有什么区别吗

提前感谢

4

1 回答 1

2

1) with是一个内联模板绑定,当子 ViewModel 为空时想要隐藏区域时常用,当要将上下文从父模型更改为子模型时使用它也是一个好习惯。

2) 不是真的,适​​用于任何对象。如果您的数组可以为空,那么with很好(如果foreach绑定适用于空值,我不记得了)

3)是的,它们完全不同。With不提供数组 foreach 模板功能,如果您想与数组一起使用那么您需要在with中使用foreach绑定。

还可以看看我的 Convention over configuration library,它消除了所有关于绑定的麻烦,这里有一个例子

https://github.com/AndersMalmgren/Knockout.BindingConventions/wiki/With-convention

编辑:我的库抽象了with绑定,上面 Github 链接中的示例在没有我的约定库的情况下看起来像这样

<select data-bind="options: items, value: selectedItem, optionsText: 'name', optionsCaption: 'Select...'"></select>

<div data-bind="with: selectedItem">
    <span data-bind="text: name"></span>
</div>
于 2013-04-02T07:28:19.850 回答