敲除绑定 - 选择第一个填充对象

时间:2012-07-23 18:31:05

标签: javascript jquery forms knockout.js

我有以下KnockoutJS代码,以便为地址表单编辑器进行数据绑定,在这里我可以有4种地址类型(“home”,“office”等)。

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

现在一切都运行良好但是selectedAddress被硬编码为索引0

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

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

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

欣赏。

1 个答案:

答案 0 :(得分:1)

Knockout的实用程序功能提供了非常便利的arrayFirst功能,这使得这很简单:

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

这是updated fiddle

以下是KO's utility functions的便捷参考: