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 にアップデートすると、これが行われるはずの方法が変わりましたか?
ありがとう!