Metadatastore Post Entity构造函数

时间:2016-09-30 14:35:15

标签: javascript c# entity-framework knockout.js breeze

目标是将未经跟踪的计算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之前的装载:

enter image description here

0 个答案:

没有答案