0

そよ風とノックアウトを使用して日付にバインドしようとしています。BreezeController から返されるデータは期待どおりです。しかし、デバッガーで次のように表示されます。

  TripDate: function dependentObservable() {
__ko_proto__: function (evaluatorFunctionOrOptions, evaluatorFunctionTarget, options) {
_latestValue: Wed Dec 31 1969 19:00:00 GMT-0500 (Eastern Standard Time)
__proto__: Invalid Date

データベース サーバーから返される json データは次のとおり TripDate: "2013-07-21T00:00:00.000" です。

4

2 に答える 2

0

表示したいだけならチェック

ko.bindingHandlers.dateString = {
update: function(element, valueAccessor, allBindingsAccessor, viewModel) {
    var value = valueAccessor(),
        allBindings = allBindingsAccessor();
    var valueUnwrapped = ko.utils.unwrapObservable(value);
    var pattern = allBindings.datePattern || 'MM/dd/yyyy';
    $(element).text(valueUnwrapped.toString(pattern));
}
}

HTMLで「datepicker」を「dateString」に置き換えます

于 2013-08-30T00:51:50.220 に答える
0

これをビューモデルで使用する

ko.bindingHandlers.datepicker = {
init: function(element, valueAccessor, allBindingsAccessor) {
    //initialize datepicker with some optional options
    var options = allBindingsAccessor().datepickerOptions || {};
    $(element).datepicker(options);

    //handle the field changing
    ko.utils.registerEventHandler(element, "change", function () {
        var observable = valueAccessor();
        observable($(element).datepicker("getDate"));
    });

    //handle disposal (if KO removes by the template binding)
    ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
        $(element).datepicker("destroy");
    });

},
//update the control when the view model changes
update: function(element, valueAccessor) {
    var value = ko.utils.unwrapObservable(valueAccessor());
    $(element).datepicker("setDate", value);
}
};

次にhtmlで

data-bind="datepicker:tripDate"

今、あなたは必要なものを手に入れます....また、更新された日付を保存することもできます

于 2013-08-30T00:46:17.087 に答える