在使用显示模块模式时,我无法使用Knockout进行数据绑定。
我的javascript就像这样
var HMS = HMS || {};
$(function () {
HMS.PatientModel = function () {
this.Patient_Name = ko.observable();
this.Patient_Address = ko.observable();
};
HMS.PatientViewModel = function () {
var patient = ko.observable(),
loadPatient = function () {
patient = new HMS.PatientModel();
patient.Patient_Name("Premkumar");
};
return {
patient: patient,
loadPatient: loadPatient
};
} ();
HMS.PatientViewModel.loadPatient();
ko.applyBindings(HMS.PatientViewModel);
});
我无法正确使用数据绑定来处理患者姓名。 HTML div标记有data-bind="text:patient.Patient_Name"
。
请参阅jsFiddle http://jsfiddle.net/stprem/pp9ym/1/中的代码。如果您能告诉我数据绑定中的错误,我将不胜感激。
答案 0 :(得分:4)
在loadPatient
函数中,您正在用新对象替换patient
变量,但您的模块已经返回了对原始observable的引用。因此,以这种方式更新它不会更新对象返回的内容。
以下是一个选项:http://jsfiddle.net/rniemeyer/pp9ym/6/
基本上,您将patient
保留为可观察对象,然后在loadPatient
函数中更新它。在您的视图中,使用with
绑定可以帮助您防止对象为空,以防您在调用ko.applyBindings
后加载它。