我对 knockout 非常陌生,并正在尝试探索它。我知道如何使用 foreach 但对“with”感到困惑。我刚刚浏览了 With 的 knockout ( http://knockoutjs.com/documentation/with-binding.html ) 文档。还是喜欢:
1)我什么时候应该使用“with”
2) foreach 有替代方案吗?
3)“with”和foreach有什么区别
提前致谢
最佳答案
1) with 是一个内联模板绑定(bind),当你想在子 ViewModel 为空时隐藏一个区域时,它通常被使用,当你想要改变从父模型到子模型的上下文。
2)并非如此,with适用于任何对象。如果你的数组可以为空,那么 with 就很好(我记不清 foreach 绑定(bind)是否适用于空值)
3)是的,它们完全不同。 With 不提供数组 foreach 模板功能,如果您想将 with 与数组一起使用,那么您需要在 内部使用 foreach 绑定(bind)与。
另请查看我的约定优于配置库,它消除了有关绑定(bind)的所有麻烦,这里是一个 with 示例
https://github.com/AndersMalmgren/Knockout.BindingConventions/wiki/With-convention
编辑:我的库抽象了 with 绑定(bind),如果没有我的约定库,上面的 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>
关于knockout.js - knockout 与 "with"或 foreach 的数据绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15756875/