結合於母公司的功能,我有以下的html:單擊的foreach
<div data-bind="foreach: Contacts">
<a data-bind="click: $parent.Foo($data), text: Name">link</a>
</div>
<button data-bind="click: AddContacts">click</button>
和JS代碼:
var viewModel = ko.mapping.fromJS({"Selected":null,"Contacts":[]});
viewModel.AddContacts = function(){
this.Contacts([{"Name":"C1"},{"Name":"C2"}]);
}
viewModel.Foo = function (contact) {
alert(contact.Name);
}
ko.applyBindings(viewModel);
當我點擊按鈕foo是要求每個聯繫人。我沒有想到,直到任何鏈接被點擊,纔會調用它。
警告:與上面的代碼,在富(),「this」變量將* not *爲viewModel。這個例子的工作原理是因爲在Foo中沒有使用「this」。要獲得「這個」是正確的,你會做「點擊:$ parent.Foo.bind($ parent)」。見http://jsfiddle.net/4cUv9/ – pettys