【问题标题】:Breezejs date always Dec 31, 1969Breezejs 日期始终为 1969 年 12 月 31 日
【发布时间】:2013-08-29 23:06:47
【问题描述】:

我正在尝试使用微风和淘汰赛绑定到日期。从 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" 知道为什么日期“无效”吗?

【问题讨论】:

    标签: date knockout.js breeze


    【解决方案1】:

    在视图模型中使用它

    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"
    

    现在你会得到你需要的......你也可以保存更新的日期

    【讨论】:

      【解决方案2】:

      如果您只想显示,请检查它

      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'

      【讨论】:

      • 感谢您的建议,但我在尝试格式化之前打开了该值(未显示)。更具体地说,json数据中的日期值是正确的,但是当我打开可观察对象以格式化日期时,可观察对象中包含的值不正确。不知道下一步该做什么。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      • 2018-04-11
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多