我正在创建一个包含数据库列表数据的简单页面,我想通过将行数据传输到表单中来创建编辑所选行的选项。 然后,用户可以更新数据并提交表单。
问题可能是我使用相同的表单来插入和编辑数据(取决于objectID是否为null)。
我设法通过使用ko.applyBindings(PAGMODEL,DOM_ELEMENT)来刷新页面的两个部分,但是当用户需要使用' livesearch'来查找和加载数据时,我无法显示数据。 /'自动完成' (我得到的数据,它只是在html上显示)
代码:
function MedicalCentersPM(parameters) {
var self = this;
self.MyModelArray = ko.observableArray();
self.MyModelToManipulate = new MyModel();
self.SearchQuery = ko.observable('');
self.loadData = function () {
loadDataRowsSync(
parameters.filter,
self.SearchQuery(),
'',
function () {
self.MyModelArray.removeAll();
},
function (jsonData) {
$.each(jsonData, function (i, mc) {
self.MyModelArray.push(new MyModel(mc));
});
}
);
/// UPDATING HTML (ONE WAY)
try {
ko.applyBindings(self, parameters.dataDOM);
} catch (exc) { }
};
self.manipulateRow = function () {
axaxManipulationCall(
parameters.manipulationUrl,
ko.toJSON(self.MyModelToManipulate),
function () {
self.resetForm();
self.loadData();
},
function (message) {
alert(message);
}
);
};
self.selectRow = function (row) {
self.MyModelToManipulate(MyModel(ko.toJS(row)));
ko.cleanNode(parameters.formDOM);
ko.applyBindings(self, parameters.formDOM);
};
self.resetForm = function () {
self.MyModelToManipulate = new MyModel(JSON.parse(parameters.defaultModel));
ko.cleanNode(parameters.formDOM);
ko.applyBindings(self, parameters.formDOM);
};
self.messageRow = function () {
alert(ko.toJSON(self.MyModelToManipulate));
return false;
};
self.loadData();
self.resetForm();
};
JSFiffle:http://jsfiddle.net/cbpedmh4/5/
我可能做错了什么或者我错过了一些小细节....所以...... 有谁能指出我正确的方向?
谢谢