gpt4 book ai didi

javascript - knockout.js 中是否有相当于 'as' 的 with?

转载 作者:行者123 更新时间:2023-11-29 21:51:56 24 4
gpt4 key购买 nike

在 knockout.js foreach 中,您可以使用 as 参数将值作为别名保存到上下文中,这样您就可以在更深层次的地方使用它捆绑。查看documentation .

<ul data-bind="foreach: { data: items, as: 'category' }">
</ul>

with 有等价的吗?类似于:with: { data: item, as: 'category' }?

或者有更好的方法吗?

我想阻止的事情:

  • 使用$parent.$parent等的相对方式
  • 将其放入 View 模型

最佳答案

不,没有。您可以在 foreach binding's source code 中看到 as 是如何实现的并将其与 source of the with binding 进行比较什么都没有。

您还没有完全重现您的场景,因此很难提出实用的、具体的 $parent.$parent 替代方案。您自己已经提到过的主要方法(因为不想使用)是在 View 模型中执行此操作。我会争辩说,在大多数情况下,这实际上是做事的首选方式:类/ View 模型/构造函数之间的关系最好编码在 JavaScript 代码本身中。一点也不,因为这将使它可以进行单元测试。

您唯一的选择是从 $root 开始,然后一直往下。例如,假设这个嵌套:

var vm = { planet: { name: 'earth', country: { name: 'UK', city: { name: 'London' } } } };

那么在最深的嵌套中你有两种选择:

  • $parent.$parent.name
  • $root.planet.name

但同样:如果没有实际的复制,很难提出实际的替代方案。

关于javascript - knockout.js 中是否有相当于 'as' 的 with?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28701180/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com