我对Knockout很新,并试图探索它。我知道如何使用foreach但是对“with”感到困惑。我刚刚浏览了针对With的敲除文件(http://knockoutjs.com/documentation/with-binding.html)。还是喜欢:
1)我何时应该使用“with”
2)有替代foreach吗?
3)“with”和foreach
之间有什么区别感谢Advace
答案 0 :(得分:2)
1) with 是一个内联模板绑定,当你想在子ViewModel为null时隐藏一个区域时常用它,当你想要改变它时,它也是一个很好的做法。从父模型到子模型的上下文。
2)不是, 适用于任何对象。如果你的数组可以为null,则 是好的(如果 foreach 绑定与空值一起使用,我无法记住这一点)
3)是的,他们完全不同。 使用如果您希望将 with 与数组一起使用,则不提供阵列foreach模板功能,那么您需要在中使用 foreach 绑定以强>
另外看看我的约会配置库,它消除了所有关于绑定的麻烦,这里是与示例
https://github.com/AndersMalmgren/Knockout.BindingConventions/wiki/With-convention
编辑:我的库使用绑定抽象,上面的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>