页面加载时输入字段应为空。
当用户点击“编辑帖子”时然后我打电话给KO点击并选择' function(all working)..当我这样做时,选中的行被正确绑定。
当前代码会自动绑定页面加载,因此第一条记录位于输入字段中。
<div data-bind="with: Selected">
<input type="text" data-bind="value: Name" />
</div>
<i title="Edit Post" data-bind="click: $parent.select"></i>
示例黑客
<div data-bind="if **click: $parent.select then** with: Selected">
<input type="text" data-bind="value: Name" />
</div>
<i title="Edit Post" data-bind="click: $parent.select"></i>
如果点击&#39;如何编写数据绑定?然后选择:选择&#39; ?
更新
答案 0 :(得分:1)
一般来说,你只想让它在Selected
可观察量之外运作。如果未填充,则不会渲染该区域。如果它是pooulated,那么将使用Selected
持有的任何对象。
因此,当您致电$parent.select
时,您希望使用您的对象填充Selected
。
实际上,observables是函数,所以除非你需要运行其他逻辑,否则你甚至可以使用快捷方式直接将click
绑定到Selected
observable。当前数据作为第一个参数传递,它设置了observable的值。
答案 1 :(得分:0)
您可以根据单击的项目更改Selected属性...
所以viewModel的示例可能就像......
var items = [{ Name: 'item1' }, { Name: 'item2' }];
var viewModel = {
items: items,
Selected: ko.observable(items[0])
}
viewModel.select = function(selectedItem) {
// The first arg is the context of the item clicked
// Selected in an observable
viewModel.Selected(selectedItem);
};
然后,如所选更改...您的名称绑定将自动更新。