0

我过去曾问过关于淘汰赛的问题,但自从上一个问题得到解决后,我就没有机会从事淘汰赛工作。我最新的问题是关于在涉及 Date 对象的情况下使用 ko.mapping.fromJS 的。

当我使用 ko.mapping.fromJS 映射具有嵌套 Date 对象的对象时,Date 对象被转换为......我不知道它是什么。

这是我的 jsfiddle:http: //jsfiddle.net/L5sgW/46/

HTML:

<p> <span>Name:</span>
 <span data-bind="text: IntroData.Name"></span>

    <button id="update" data-bind="click: Update">Update!</button>
</p>

Javascipt:

var ViewModel = function (data) {
    var me = this;
    ko.mapping.fromJS(data, {}, me);

    me.Update = function () {
        alert(stuff2.IntroData.TestDate.toString('yyyy-MM-dd'));
        ko.mapping.fromJS(stuff2, {}, me);
        alert(me.IntroData.TestDate.toString('yyyy-MM-dd'));
    };

    return me;
};

var stuff = {
    IntroData: {
        Name: 'Test'
    }
};

var stuff2 = {
    IntroData: {
        TestDate: new Date('2013-09-01'),
        Name: 'Test2'
    }
};

window.viewModel = ko.mapping.fromJS(new ViewModel(stuff));
ko.applyBindings(window.viewModel);

当您单击“更新!” 按钮“Stuff2.IntroData.TestDate”显示在警报中。然后发生映射。当“me.IntroData.TestDate”的警报发生时,它会导致:“function d(){if(0

为什么不保留日期值?我该如何保存它?

4

1 回答 1

0

:)

请记住,您需要括号来获取 TestDate 的属性 -

http://jsfiddle.net/L5sgW/47/

alert(me.IntroData.TestDate().toString('yyyy-MM-dd'));

那是我唯一改变的行。

于 2013-08-06T21:19:48.490 回答