2012-07-23 37 views
0

我有以下KnockoutJS代码为了使地址表单编辑器的数据绑定,我可以有4种地址类型(“家”,“办公室”等)。敲除绑定 - 选择第一个填充对象

http://jsfiddle.net/mxgFQ/1/

现在一切是伟大的工作,但selectedAddress被硬编码为索引0

self.selectedAddress = ko.observable(self.addresses[0]); 

而不是做这个,我想选择有数据填充第一个地址对象。

有关如何做到这一点的任何线索?

欣赏。

+0

你怎么想确定“在他们中有数据”?基于Address1(或其他单个字段),任何字段或每个字段? – Tyrsius 2012-07-23 20:18:42

+0

Address1是完美的。是最重要的一个。谢谢!! – VAAA 2012-07-23 20:58:07

回答

1

淘汰赛的效用函数提供了非常convienent arrayFirst功能,这使得这个简单:

self.selectedAddress = ko.observable(
     ko.utils.arrayFirst(self.addresses(), function(item) { 
      return item.address1().length > 0; 
     })); 

这里是updated fiddle

这里是KO's utility functions一个方便的参考:

+0

非常感谢。也为便于参考!我会看看并研究一下。欣赏它 – VAAA 2012-07-23 21:43:51