我正在阅读 John Papa 的 HotTowel 教程并将其调整为我自己的数据。我想将一个名为 startTime 的日期时间字段格式化为一个用时刻格式化的字符串,但初始化函数甚至没有被调用来添加计算字段。
在 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 是否改变了应该完成的方式?
谢谢!