0

John Papa の HotTowel チュートリアルを読んで、それを自分のデータに適応させています。startTime という名前の datetime フィールドを moment でフォーマットされた文字列にフォーマットしたいのですが、計算フィールドを追加するために初期化関数が呼び出されていません。

datacontext.js で:

 var getSessions = function (sessionsObservable) {

    var query = EntityQuery.from('Sessions').orderBy('startTime', 'title');
    return manager.executeQuery(query).then(querySucceded).fail(breezeQueryFailed);

    function querySucceded(data) {
        if (sessionsObservable) {
            sessionsObservable(data.results);
        }
        log('Retrieved Sessions', data, true);
    }
};



function configureBreezeManager() {
    breeze.NamingConvention.camelCase.setAsDefault();
    var mgr = new breeze.EntityManager(config.remoteServiceName);
    model.configureMetadataStore(mgr.metadataStore);
    return mgr;
}

model.js で:

    function configureMetadataStore(metadataStore) {
    metadataStore.registerEntityTypeCtor('Sessions', null, sessionInitializer);
}


function sessionInitializer(session) {
    session.startDayTime = ko.computed(function () {
        var start = session.startTime();
        return start ? moment.utc(start).format('dddd h:mm a') : '';
    });
}

API から取得したすべてのデータを返しますが、その startDayTime 計算フィールドは追加しません。sessionInitializer() 関数にブレークポイントを設定しましたが、到達しません。私は何が欠けていますか?Breeze 1.4.4 にアップデートすると、これが行われるはずの方法が変わりましたか?

ありがとう!

4

1 に答える 1