1
當我試圖讓foo.Id的Click事件中的價值 - 在我(removeAFoo> removeFoo)獲得功能文本「函數B(){如果(0 ... 」有什麼需要改變,以獲得foo.Id的屬性值?另一個奇怪的事情是,當我在viewModel.foos陣列調用的indexOf()返回即使該陣列說,這是該指數爲零長度。不能得到淘汰賽對象的屬性值
function getFoos() {
viewModel.foos([]);
var data = [{
Id: 1,
Name: 'Joe' },
{
Id: 2,
Name: 'Jon' },
{
Id: 3,
Name: 'Jim' }
]
for (var i = 0; i < data.length; i++) {
var f = new foo();
f.Id(data[i].Id);
f.Name(data[i].Name);
viewModel.foos.push(f);
}
};
var viewModel = {
foos: ko.observableArray([]),
reloadFoos: function() {
getFoos();
},
removeAFoo: function(foo) {
removeFoo(foo);
}
};
var foo = function() {
this.Id = ko.observable();
this.Name = ko.observable();
};
function removeFoo(foo) {
alert(viewModel.foos.indexOf(foo));
alert(foo.Id);
viewModel.foos.splice(viewModel.foos.indexOf(foo), 1);
}
ko.applyBindings(viewModel);
getFoos();
<div data-bind="foreach: foos">
<div style="float: left">
<button data-bind="click : $parent.removeAFoo, attr: { id: Id }">
</button>
<label data-bind="text: Name">
</label>
</div>
</div>
http://jsfiddle.net/suedeuno/gAUgV/12/
謝謝,我完全錯過了。 – Suedeuno 2012-07-13 17:58:09
4天玩Knockout.js,我只是意識到,需要parentheseis! – LKallipo 2013-04-26 10:08:20