我想创建一个使用类似于silverlight中的dataform的数据网格的数据形式功能。淘汰赛选定的项目变化
我有一个div从格显示所选项目:
$('#readDate').attr('data-bind', 'text : selectedEntry.expenseDate');
$('#readDesc').attr('data-bind', 'text : selectedEntry.expenseDescription');
$('#readAmount').attr('data-bind', 'text : selectedEntry.expenseAmount');
在我的视图模型
,我有一个函数来设置选择的项目:
this.setSelectedEntry = function (id) {
vm.selectedEntry = vm.data()[id];
}
所选择的项目是如下定义:
function ExpenseEntry(Id, expenseDate, expenseDescription, expenseAmount) {
this.Id = Id;
this.expenseDate = ko.observable(expenseDate);
this.expenseDescription = ko.observable(expenseDescription);
this.expenseAmount = ko.observable(expenseAmount);
}
但是,每当我更改selectedEntry对象,UI不会更新ated。这是因为UI绑定到对象的成员而不是对象本身?我如何直接绑定到selectedEntry?
感谢您的示例。有一件事我不明白的是,当你这样做时,该项目是如何传递给select函数的:click:$ root.select? – 2012-02-28 17:54:23
我使用Knockout“click”绑定(http://knockoutjs.com/documentation/click-binding.html)。当发生点击事件时,Knockout将调用绑定中列出的函数,并将当前数据项作为第一个参数传递。在我的情况下,它调用位于根视图模型中的“选择”功能。 – 2012-02-28 20:31:12