如何“;绑定”;(存储)我可观察到的$指数
How to "bind" (store) the $index observable to my observable?
我有一个foreach
绑定,在我的数据中有一个可观察的Level
。如何将$index
值存储在我的Level observable中?我需要它,因为数组转到服务器端脚本,我不希望在最后保留顺序。
我已经在谷歌上搜索了一段时间,但还没有找到任何相关的答案
这不是应该做的。您应该在填充外部列表的循环中设置Level
的值(您应该在那里有一个索引),或者在填充列表时创建一个函数来执行此操作。
如果您坚持,您可以创建一个执行指令的bindingHandler,并在foreach绑定开始时使用它:
// JS
ko.bindingHandlers.setter = {
init: function(element, valueAccessor) {
valueAccessor();
}
}
// HTML
<div data-bind="foreach: list">
<span data-bind="setter: Level($index())"></span>
... the rest of the code ...
</div>
但这不是一个好主意。当可观察数组发生变化时,foreach绑定将再次运行,并且不能保证Level
的值保持不变。
演示:Plunkr
相关文章:
- knockoutjs可观察数组
- 多次发射多个可观察器的问题
- 未激发路由的控制器属性上的观察者
- 无法在关闭弹出窗口时传递可观察的数据
- firefox插件:退出不工作的应用程序观察器
- 如何收集Knockout可观察性以放入JSON
- 在rxjs中巧妙的蒸汽可观察合并
- Knockout observable没有观察到其中一个属性
- 将属性设置为未定义时未通知观察者
- 将js对象更改为使用嵌套的可观察数组敲除js视图模型
- KOValidation在错误消息中获取可观察值、$index()、$data等
- 启用具有多个布尔可观察标志的绑定
- 聚合物-dom重复的起始指数
- 为什么prototypjs观察到回调函数有绑定
- Ember:当子控制器同时观察到父控制器触发请求的相同属性时
- 检测 DIV 的高度何时变化,而无需轮询或突变观察者
- 财产'catch'在类型'可观察<任意>'
- 在另一个可观察量完成后触发第二个表单提交单击
- 如何使用javascript设置元素旋转和动态观察的动画
- 如何“;绑定”;(存储)我可观察到的$指数