knockout.js - knockout 与 "with"或 foreach 的数据绑定(bind)?

标签 knockout.js knockout-templating

我对 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/

相关文章:

javascript - 将参数从 Knockout 模板传递到模态

javascript - 在 knockoutjs 中评论 foreach 绑定(bind)与 foreach 绑定(bind)

javascript - 如何将 native Knockout 模板与 KO 外部模板引擎结合使用

javascript - knockout javascript foreach 绑定(bind)

javascript - knockout 功能和谷歌地图

javascript - 提高第三方应用程序的可用性

javascript - 为什么它以随机顺序初始化这个 Knockout.js 组件?

javascript - 当我们确定对象已创建时如何获取对象的属性

javascript - 如何使用 ko.compulated (Knockout.js) 更正绑定(bind)属性

javascript - 在 knockout 1.3 中将选项传递给模板