bir ko.observableArray
function data(id,val)
{ var self = this;
self.id = ko.observable(id);
self.valuee = ko.observable(val); }
var o1=new data(1,"kamran");
var o2=new data(2,"paul");
var o3=new data(3,"dave");
var mysel=ko.observable();
var combo = ko.observableArray();
combo.push(o1);
combo.push(o2);
combo.push(o3);
function find()
{
var ide=document.getElementById("vid").value;
findandset(Number(ide),mysel);
}
function indx()
{
var x=document.getElementById("kam").selectedIndex;
alert(x);
}
function getsel()
{
alert(mysel().valuee());
}
function findandset(id,selected)
{
var obj = ko.utils.arrayFirst(combo(), function(item) {
return id=== item.id();
});
selected(obj);
}
findandset(1,mysel);
ko.applyBindings(combo);
<select id="kam" data-bind="options: combo,
optionsText: 'valuee',
value: mysel,
optionsCaption: 'select a value'">
</select>
<span data-bind="text: mysel().valuee"></span>
<button onclick="getsel()">Selected</button>
<button onclick="indx">Sel Index</button>
<input id="vid" />
<button onclick="find()">Set by id</button>
bir nesneyi arama: HTML'de
self.jobroles = ko.observableArray([]);
self.jobroleName = function (id)
{
var match = ko.utils.arrayFirst(self.jobroles(), function (item)
{
return item.id() === id(); //note the()
});
if (!match)
return 'error';
else
return match.name;
};
i aşağıdaki ($ ebeveyn bu tablo satırı döngü içinde olmak nedeniyle) var
http://jsfiddle.net/rathore_gee/Y4wcJ/
Bu, itemToAdd'daki tüm özellikleri karşılaştırıyor mu? Sadece bir Id özelliği için test etmem gerekiyor. – jaffa
Bu, ikinin aynı nesne olup olmadığını kontrol edecektir. Bireysel özellikleri kontrol etmeniz gerekiyorsa, o zaman 'ko.utils.arrayFirst' kullanabilirsiniz. Cevaba bir örnek ekleyeceğim. –
Mükemmel ipucu, ancak itemToAdd.id === item.id öğesini itemToAdd.id() === item.id() olarak değiştirmem gerekiyordu. Kodumu bir sonraki cevapta yayınladım. – Rake36