我对 Knockout 很陌生,并试图探索它。我知道如何使用 foreach 但对“与”感到困惑。我刚刚浏览了 With 的淘汰赛文档(http://knockoutjs.com/documentation/with-binding.html)。还是喜欢:
1)我什么时候应该使用“with”
2) with 是 foreach 的替代品吗?
3)“with”和foreach有什么区别吗
提前感谢
我对 Knockout 很陌生,并试图探索它。我知道如何使用 foreach 但对“与”感到困惑。我刚刚浏览了 With 的淘汰赛文档(http://knockoutjs.com/documentation/with-binding.html)。还是喜欢:
1)我什么时候应该使用“with”
2) with 是 foreach 的替代品吗?
3)“with”和foreach有什么区别吗
提前感谢
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>