目标是将未经跟踪的计算FullName
函数应用于实体。此实体传递给客户端,并使用knockout绑定。我通过将Initializer函数链接到metadatastore实体注册构造函数来应用recommended method。
// The Entities are being created on the client side.
var metadataStore = manager.metadataStore;
metadataStore.registerEntityTypeCtor('Doctor', null, DoctorInit);
function DoctorInit(doctor) {
// The whole entity is passed to the function, but
// the properties are not observable.
doctor.FullName = ko.computed(function () {
// Err: doctor.FirstName is not a function
return doctor.FirstName() + " " + doctor.LastName();
});
}
当viewmodel访问FullName
属性时,会抛出一个错误,指出doctor.FirstName
不是函数,因此我检查了属性以确保使用{{1}可以观察它们而且他们没有被观察到。
考虑到客户可以更新和保存数据,这是一个有趣的困境。我根本无法应用未跟踪的计算可观察量。我该如何解决这个问题。是否有微风的钩子可以向我保证击倒存在且有效?
根据this question如果Breeze在加载淘汰赛之前加载,Breeze将不会应用observable,所以我确认首先加载了淘汰赛。
Breeze之前的装载: