当使用属性路径扩展时,registerEntityTypeCtor初始化器似乎不会触发
registerEntityTypeCtor initializers does not seem to trigger when using property path expand
我希望实体中的所有Date类型始终转换为momentjs。我为此使用的解决方案(代码2)适用于getResources(代码1),为'Event '和'Shift'实体触发初始化器。但是当我调用getUser扩展工作,因为它应该,我得到正确的数据为'订单'和'事件',但'事件'的初始化器从未触发。知道为什么吗?是因为我使用了属性路径展开吗?
另外,如果你能想出一个更好的解决方案,把我实体中的所有Date类型转换为moments,我也很乐意接受。
代码1:var getResources = function () {
var query = breeze.EntityQuery
.from("Resources")
.expand("Event, Shift")
.orderBy("ResourceId");
return manager.executeQuery(query)
.fail(fail);
}
var getUser = function () {
var query = breeze.EntityQuery
.from("LoggedInUser")
.expand("Order.Event")
.orderBy("Email");
return manager.executeQuery(query)
.fail(fail);
}
代码2:function configureMetadataStore(metadataStore) {
metadataStore.registerEntityTypeCtor('Shift', null, momentInitializer);
metadataStore.registerEntityTypeCtor('Event', null, momentInitializer);
metadataStore.registerEntityTypeCtor('Order', null, momentInitializer);
}
function momentInitializer(entity) {
var newMoment,
prop;
for (prop in entity) {
if (ko.isObservable(entity[prop])) {
if (entity[prop]() instanceof Date) {
newMoment = ko.observable(moment(entity[prop]()));
entity[prop] = newMoment;
}
}
}
}
我相信有一个更好的和更详细的答案,但据我所知,你可能试图在给定的格式显示日期,而不是实际转换它在数据库中,正确的?
如果你正在使用绑定处理程序,如Knockout.js,你可以改变它显示的格式,而不是转换日期/时间戳。对于转换日期只是为了显示它们,我总是很谨慎,因为我过去遇到过这样的问题,数据库对我很生气。
下面是一个自定义绑定处理程序的例子,显示日期时间为May 29, 2013, 2:22:00 pm
ko.bindingHandlers.DateTime = {
update: function (element, valueAccessor) {
var value = valueAccessor();
var date = moment(value());
var strDate = date.format('MMMM Do YYYY, h:mm:ss a');
$(element).text(strDate);
}
};
相关文章:
- 使用javascript函数在页面初始化后加载jquery
- 未捕获错误:无法在初始化之前调用方法;
- 如何在剑道网格初始化后设置pageSizes
- React redux初始化功能,无论状态变化如何
- 为什么可以't Protractor在自动初始化的Angular网站上查找Angular
- 尝试初始化()Spine's控制器和故障
- Angular.js延迟控制器初始化
- 对插件初始化后动态加载的元素进行样式设置
- Angular JS控制器初始化错误
- 在XMLHttpRequest之后重新初始化jQuery
- ember-js组件初始化不同的函数
- Youtube JavaScript API不是't正在初始化
- 函数无法识别初始化的变量
- datepicker引导程序再次初始化
- jquery数据表在初始化时设置宽度
- 如何使用app和secret进行安全的解析初始化
- 从javascript中再次初始化c变量
- ng重复中的ng模型-初始化唯一作用域属性
- 正在Ajax调用上初始化主干视图
- 用真或假初始化变量是否在 Javascript 中建立了内容的方向