有人可以帮助我更好地理解在不使用模板的情况下绑定(bind)到可观察数组元素吗?
我有一个表,其中包含的数据多于我尝试从数组中呈现的数据。我的数组是固定大小的,因此为了避免布局的挑战,我想将输入框直接绑定(bind)到数组元素。我可以将其单向绑定(bind)到 View ,但无法识别更新。这是我的样本:jsfiddle
我没有成功地尝试使每个元素可观察,但我得到了相同的结果。
最佳答案
访问数组项的语法导致 Knockout 在单向绑定(bind)发生更改时不会创建回调来更新该值(它认为它是一个表达式且不可写)。例如,如果您这样做,它将正常工作:
viewModel.test = viewModel.recipients()[0];
然后做了:
<input data-bind="value: test.emailAddress"/>
因此,您的情况表明这是 knockout 中的一个问题。这在模板绑定(bind)中也可以正常工作,或者如果您不想使用模板绑定(bind),那么将 emailAddress
设为可观察对象也可以正常工作。
它看起来像:http://jsfiddle.net/rniemeyer/3JmbA/2/
因此,您可以在构造函数中将 emailAddress 设置为可观察值,并且您的警报需要将可观察值作为函数来访问。
关于knockout.js - 没有模板的 knockout 绑定(bind)到数组元素只能以一种方式工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7046125/