【发布时间】:2013-05-07 12:12:35
【问题描述】:
我有一个 observableArray,里面装满了我想绑定到输入字段的 observable,like in this fiddle:
<ul data-bind="foreach: elements">
<li>
<input type="text" data-bind="value: $data"/>
</li>
</ul>
但是,数组中的 observables 正在被解包,所以此时 observable 的值绑定到输入的值,而不是 observable 本身。
是否可以绑定可观察对象本身,而不是绑定值?
In a different question, RP Niemeyer 建议将 observable 包装在一个对象中。这是我目前的解决方案,但我不喜欢多余地包装 observable,而是直接绑定它。
【问题讨论】:
-
数据到达
value输入时的绑定已经被解包(只是可观察的值),因此写入无法将其恢复为可观察的。您仍然需要将其包装在一个对象中才能使其当前正常工作。 -
这就是我害怕的。你说这需要当前完成,这是否表明这是你正在做的事情?
-
我们有一个问题和一些支持可观察视图模型的工作:github.com/SteveSanderson/knockout/issues/485。但是,在
foreach循环内,如果数据已经被解包,则无法返回可观察对象。我可以看到可能会添加一个选项以在某些时候不打开包装。 -
如果你确实需要这个(不能重新映射你的结构)并且不介意语法,那么我认为 Sujesh Arukil 建议的答案没有问题。跨度>
-
@RPNiemeyer 这实际上比我想象的更容易实现。我创建了一个pull request。
标签: knockout.js