首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kendoDatePicker敲除绑定无效

kendoDatePicker敲除绑定无效
EN

Stack Overflow用户
提问于 2015-09-29 16:51:03
回答 1查看 755关注 0票数 1

我试图从我的视图模型绑定kendoDatePicker值。

当我使用一个简单的,可观察的,它是完美的工作。html:

代码语言:javascript
复制
<input data-bind="kendoDatePicker: { value: myDate().selectedDate} " />

变更日期

代码语言:javascript
复制
var DateModel = function (json) {
            var self = this;

self.selectedDate = ko.observable((!json || !json.Value) ? new Date('01/02/2015') : new Date(json.Value));

};


function ViewModel() {
    var self = this;

    // initializing  my object with empty string to avoid html databinding exceptions
    self.myDate= ko.observable(new DateModel(''));

    self.changeDate = function () {

    self.myDate(new DateModel({Value:"09/08/1935"}));
    };

    return self;
};

ko.applyBindings(new ViewModel());
代码语言:javascript
复制
<!-- REFERENCES
    http://cdn.kendostatic.com/2012.3.1315/styles/kendo.common.min.css
    http://cdn.kendostatic.com/2012.3.1315/styles/kendo.default.min.css 
    http://cdn.kendostatic.com/2012.3.1315/js/kendo.core.min.js
    http://cdn.kendostatic.com/2012.3.1315/js/kendo.web.min.js
    http://ajax.aspnetcdn.com/ajax/knockout/knockout-2.2.1.js
    http://rniemeyer.github.com/knockout-kendo/js/knockout-kendo.min.js
-->


<input data-bind="kendoDatePicker: { value: myDate().selectedDate} " />

 <button data-bind="click: changeDate">Change Date</button>
    <p data-bind="text: myDate().selectedDate">  </p>

演示:http://jsfiddle.net/NGLEp/27/

但是,当我使用带有json值的可观察模型(就像解析我的webservice结果)时,它不起作用。

代码语言:javascript
复制
var DateModel = function (json) {
            var self = this;

self.selectedDate = ko.observable((!json || !json.Value) ? new Date('01/02/2015') : new Date(json.Value));

};


function ViewModel() {
    var self = this;

    // initializing  my object with empty string to avoid html databinding exceptions
    self.myDate= ko.observable(new DateModel(''));

    self.changeDate = function () {

    self.myDate().selectedDate(new Date());
    };

    return self;
};

ko.applyBindings(new ViewModel());
代码语言:javascript
复制
<!-- REFERENCES
    http://cdn.kendostatic.com/2012.3.1315/styles/kendo.common.min.css
    http://cdn.kendostatic.com/2012.3.1315/styles/kendo.default.min.css 
    http://cdn.kendostatic.com/2012.3.1315/js/kendo.core.min.js
    http://cdn.kendostatic.com/2012.3.1315/js/kendo.web.min.js
    http://ajax.aspnetcdn.com/ajax/knockout/knockout-2.2.1.js
    http://rniemeyer.github.com/knockout-kendo/js/knockout-kendo.min.js
-->


<input data-bind="kendoDatePicker: { value: myDate().selectedDate} " />

 <button data-bind="click: changeDate">Change Date</button>
    <p data-bind="text: myDate().selectedDate">  </p>

演示:http://jsfiddle.net/NGLEp/26/

救命啊!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-29 18:56:30

代码语言:javascript
复制
self.myDate(new DateModel({Value:"09/08/1935"}));

重写绑定到selectedDate控件的旧datePicker实例。您可以使用setter方法来设置最初绑定的可观察值。

代码语言:javascript
复制
self.setDate = function(json){
    self.selectedDate((!json || !json.Value) ? new Date('01/02/2015') : new Date(json.Value));
};

JsFiddle:http://jsfiddle.net/newuserjs/NGLEp/28/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32849609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档