我正在使用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.Patient(new self.PatientModel());
我收到此错误:
Uncaught TypeError: Cannot read property 'PatientId' of undefined
我现在数据为空,但我想要一个像lastname
这样的默认值我找到http://kostructures.com/ko.Model/,但我需要一个最简单的解决方案
由于
答案 0 :(得分:1)
在尝试访问数据之前,您应该确保数据至少包含某些内容。你可以像这样解决它:
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")
}