Javascript 创建要淘汰的默认模型
我正在用knockout JS创建一个新的默认对象Javascript 创建要淘汰的默认模型,javascript,knockout.js,Javascript,Knockout.js,我正在用knockout JS创建一个新的默认对象 self.PatientModel = function(data) { var self = this; self.PatientId = ko.observable(data.PatientId||0), self.Name = ko.observable(data.Name||""), self.LastName = ko.observable(data.LastName||"Smith") } 但当我这
self.PatientModel = function(data) {
var self = this;
self.PatientId = ko.observable(data.PatientId||0),
self.Name = ko.observable(data.Name||""),
self.LastName = ko.observable(data.LastName||"Smith")
}
但当我这样做的时候:
self.Patient(new self.PatientModel());
我得到这个错误:
Uncaught TypeError: Cannot read property 'PatientId' of undefined
我现在知道数据为null,但我想要一个类似lastname的默认值
我找到了,但我需要一个最简单的解决方案
谢谢在尝试访问数据上的属性之前,您应该确保数据至少包含某些内容。你可以这样解决:
self.PatientModel = function(data) {
data = data || {PatientId: 0, Name: "", LastName: "Smith"}
var self = this;
self.PatientId = ko.observable(data.PatientId);
self.Name = ko.observable(data.Name);
self.LastName = ko.observable(data.LastName);
}
或另一种解决方案,接近您所拥有的:
self.PatientModel = function(data) {
data = data || {};
var self = this;
self.PatientId = ko.observable(data.PatientId||0),
self.Name = ko.observable(data.Name||""),
self.LastName = ko.observable(data.LastName||"Smith")
}
您只需添加
data=data | |{}代码>就在你的内心深处,太棒了!谢谢,很简单,我累了…没问题。如果答案对你有帮助,请不要忘记投票/接受