【发布时间】:2013-09-28 04:14:05
【问题描述】:
我对 Breezejs (1.4.2) 有疑问 q (0.9.7) 我想为实体添加计算属性。
var doctorInitializer = function (doctor) {
doctor.FullName = ko.computed(function () {
return doctor.FirstName() + " " + doctor.MiddleName() + " " + doctor.LastName() + " " + doctor.SurName();
});
};
var doctorName = '/breeze/polyclinic',
doctorManager = new breeze.EntityManager(doctorName);
var store = doctorManager.metadataStore;
store.registerEntityTypeCtor("Doctor", null, doctorInitializer);
我尝试向构造函数添加计算出的淘汰赛
var doctor = function () {
self.FullName = ko.computed( {
read: function() {
return self.FirstName + " " + self.MiddleName + " " + self.LastName + " " + self.SurName;
},
deferEvaluation: true
});
};
store.registerEntityTypeCtor("Doctor", doctorInitializer);
在这两种情况下,只有当我删除括号但 MiddleName 和 SurName 不是必需的并且我得到 null 而不是空字符串时才有效
这是我遇到的错误http://screencast.com/t/bP9Xnmf9Jm
更新
我尝试在控制台日志中添加错误并按照您的示例进行操作,但我有同样的错误不是函数http://screencast.com/t/bQTyV8XGD0Pk
doctor.FullName = ko.computed(function () {
var fullName = "";
fullName += doctor.FirstName();
if (doctor.FirstName()) {
fullName += ' ' + doctor.FirstName();
}
fullName += ' ' + doctor.LastName();
if (doctor.SurName()) {
fullName += ' ' + doctor.SurName();
}
return fullName;
});
var query = breeze.EntityQuery.from("Doctors").orderBy("Id")
doctorManager.executeQuery(query)
.then(function (data) {
self.doctors.removeAll();
self.doctors(data.results);
})
.fail(function(error) {
console.log(error);
});
希望有人能帮助我
【问题讨论】:
-
这是screencast.com/t/2pYhuqO3C 的响应,至少 FirsName 和 LastName 有值
标签: breeze