敲除绑定到没有模板的数组元素只能单向工作

时间:2011-08-12 20:47:30

标签: knockout.js

有人可以帮助我更好地理解在不使用模板的情况下绑定到可观察的数组元素吗?

我有一个表,其中包含的不仅仅是我尝试从数组中显示的数据。我的数组是固定大小的,所以为了避免布局的挑战,我想将输入框直接绑定到数组元素。我可以让它单向绑定到视图,但不能识别更新。以下是我的示例:jsfiddle

我没有成功地尝试使每个元素都可观察,但我得到了相同的结果。

1 个答案:

答案 0 :(得分:3)

访问数组项的语法导致Knockout不会创建回调,以便在单向绑定发生更改时更新单向绑定的值(它认为它是表达式而不是可写入的)。例如,如果您这样做,它将正常工作:

viewModel.test = viewModel.recipients()[0];

然后做了:

<input data-bind="value: test.emailAddress"/>

因此,您的方案说明这是Knockout中的一个问题。这也可以在模板绑定中正常工作,或者如果您不想使用模板绑定,那么它也可以正常工作以使emailAddress成为可观察的。

看起来像是:http://jsfiddle.net/rniemeyer/3JmbA/2/

因此,您可以在构造函数中将emailAddress设置为observable,并且您的警报需要作为函数访问可观察值。