繁体   English   中英

敲除和显示模块模式的数据绑定问题

[英]Data binding issue with knockout and revealing module pattern

使用显示模块模式时,我无法获取数据绑定以使用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/ 如果您能告诉我我在数据绑定中做错了什么,我将不胜感激。

loadPatient函数中,您将patient变量替换为新对象,但是模块已返回对原始可观察对象的引用。 因此,以这种方式更新它不会更新对象返回的内容。

这是一个选项: http : //jsfiddle.net/rniemeyer/pp9ym/6/

基本上,您可以使patient保持可观察状态,然后在loadPatient函数中对其进行更新。 在您看来,使用with绑定可以帮助防止对象为null,以防您要在调用ko.applyBindings之后加载它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM