淘汰赛可观察阵列+选择框
问题描述:
我想在可观察数组的选择框上设置选项。我可以得到填充的选项,但数组显示为一个选项,现在没有任何价值,我看它。淘汰赛可观察阵列+选择框
这里是fiddle和代码如下:
var Model = function (properties) {
this.AvailableLenders = ko.observableArray();
this.ModifyLenders = function (newProperties) {
var lenders = [],
count = 0;
ko.utils.arrayForEach(newProperties || properties, function (item) {
var lender = item.Lender;
if (lender) {
if (lenders.indexOf(lender) == -1) {
lenders[count] = lender;
count++;
}
}
});
this.AvailableLenders.removeAll();
return this.AvailableLenders.push(lenders.sort());
};
this.ModifyLenders();
};
ko.applyBindings(new Model([{Lender: "ASB"}, {Lender: "ANZ"}]));
HTML:
<select multiple="multiple" name="Lender" id="Lender" data-bind="options: AvailableLenders, optionsCaption: 'Please select a lender'"></select>
答
我发现这个问题。
问题是你正在推动贷方阵列中的的AvailableLenders阵列
var Model = function (properties) {
this.AvailableLenders = ko.observableArray();
this.ModifyLenders = function (newProperties) {
var lenders = [],
count = 0;
ko.utils.arrayForEach(newProperties || properties, function (item) {
var lender = item.Lender;
if (lender) {
if (lenders.indexOf(lender) == -1) {
lenders[count] = lender;
count++;
}
}
});
this.AvailableLenders.removeAll();
console.log("lenders ", lenders)
console.log("lenders.sort() ", lenders.sort())
单个索引I的变化以下进行。现在,你可以理解为什么它正在发生
在你的提琴添加这两条线,并检查所发生的事情
this.AvailableLenders.push(lenders[0]);
this.AvailableLenders.push(lenders[1]);
return this.AvailableLenders.push(lenders.sort());
};
this.ModifyLenders();
};
ko.applyBindings(new Model([{
Lender: "ASB"
}, {
Lender: "ANZ"
}]));
将其标记为答案
啊是的,很好的一个!谢谢解决我的问题! – Colin 2013-02-22 19:28:28