Knockout.js can';t更新属性并更改Breeze中其他属性的时区
在激活我的编辑视图页面时,我试图使用外键从不同的表中获取实体,但我认为这不是获取和更新实体的正确方法,它没有保存更新的属性“modification_date”,我面临的另一个问题是时间问题,因为我有一个属性“startDate”是datetime类型,因此当我将应用程序托管到某个VM时,它会显示比原始值多出+5:30的时间,因为数据库将该值存储在GMT+00:00中。我如何解决此问题? 我的问题是:Knockout.js can';t更新属性并更改Breeze中其他属性的时区,knockout.js,breeze,hottowel,Knockout.js,Breeze,Hottowel,在激活我的编辑视图页面时,我试图使用外键从不同的表中获取实体,但我认为这不是获取和更新实体的正确方法,它没有保存更新的属性“modification_date”,我面临的另一个问题是时间问题,因为我有一个属性“startDate”是datetime类型,因此当我将应用程序托管到某个VM时,它会显示比原始值多出+5:30的时间,因为数据库将该值存储在GMT+00:00中。我如何解决此问题? 我的问题是: 无论何时更新实体,“修改日期”都不保存当前日期的原因 当我的当前时间为GMT+5:30时,如何
作业计划estValue[0]。startDate
,这可能不是获取实体的正确方法 <div data-bind="with: job">
<label>Start Date :</label>
<input data-bind="kendoDateTimePicker: $root.temp3" />
<input data-bind="value: job_Schedule._latestValue[0].startDate = $root.tempSD1, visible: false" />
<input data-bind="value: modificationDate = $root.md, visible: false" >
//I kept visible: false because modified date should be updated automatically
// some more attributes................
</div>
日期操纵对每种技术中的每一个人来说都是一个长期的挑战 时区操作特别棘手,尤其是当客户端和服务器位于不同的时区时 如果您可以确保在中创建和存储所有日期,那么问题就不会那么严重了。我认为您不希望完全依赖对
new Date()
的调用
我建议你调查一下
我不知道如何回答您关于导航到相关实体的问题,因为您没有提供有关所涉及的实体类型或它们之间关系的任何信息。这是一个单独的问题吗?或者您的导航属性和日期问题之间是否有联系?谢谢Ward,让我再次重新框定问题,我想问什么我不知道我得到的实体来自两个表“Job_Details”和“Job_Schedule”,其中Job_Schedule有一个外键“JobID”,在此基础上,我将两个表中的数据填充到“Job”observable中,这个observable包含我需要的所有内容。现在的问题是
我是否使用正确的语法访问“Job”_计划“实体”
,因为我在视图中访问它,就像作业计划一样。\u最新值[0].startDate。如果有其他最佳方法,我准备遵循。为了获得更多参考,我发布了observable的图像,以便您能够清楚地了解填充到observable中的数据结构。请检查我用我的工作observable的图像更新了我的帖子什么是modificationDate?您为什么试图将其设置为In一个绑定表达式而不是JavaScript?那么如何在JavaScript中实现?因为“modificationDate”是数据库中的一列。vm.job.modificationDate(new Date())
假设vm.job是一个Breeze实体,它有一个modificationDate
属性。不,我们不能这样做,我已经尝试过了,它会显示错误加载路由模块失败(viewmodels/jobedit)。详细信息:vm.job.modificationDate不是一个函数
啊,我看到vm.job是一个可观察的。因此它将是vm.job().modificationDate(新日期());
vm.md = ko.dependentObservable(function () {
var y = new Date();// should assign current to modification date but its not persisting the changes to database.
return y;
}, vm);
<div data-bind="with: job">
<label>Start Date :</label>
<input data-bind="kendoDateTimePicker: $root.temp3" />
<input data-bind="value: job_Schedule._latestValue[0].startDate = $root.tempSD1, visible: false" />
<input data-bind="value: modificationDate = $root.md, visible: false" >
//I kept visible: false because modified date should be updated automatically
// some more attributes................
</div>
vm.md = ko.dependentObservable(function () {
var y = new Date();// should assign current to modification date but its not persisting the changes to database.
return y;
}, vm);
vm.tempSD = ko.dependentObservable(function () {
var y = ko.unwrap(this.tempx());// tempx containing the current value of startDate
if (y === null || y === '""') { y = new Date(); }
y = new Date(y);
var utc = y.getTime() + (y.getTimezoneOffset() * 60000);
temp3(new Date(utc));
return new Date(utc);
}, vm);
vm.tempSD1 = ko.computed(function () {
var y = vm.temp3();
if (y === null || y === '""') {y = new Date();}
y = new Date(y);
var utc = y.getTime() - (y.getTimezoneOffset() * 60000);
return new Date(utc);
},vm);