Javascript 敲除ObservalArray未由继承的datepicker值填充
我无法使用从日期选择器继承的值填充ObservalArray。我有一个禁用的文本框,显示日期选择器的值,作为数据收集部分的一部分。由于它被禁用且未被输入,因此它不会更新ObservalArray 我已经创建了一个新的解决方案,将问题剥离并本地化 任何帮助获得的价值出现在observableArray将是伟大的,因为我真的很难弄明白这一点 HTMLJavascript 敲除ObservalArray未由继承的datepicker值填充,javascript,jquery-ui,knockout.js,datepicker,momentjs,Javascript,Jquery Ui,Knockout.js,Datepicker,Momentjs,我无法使用从日期选择器继承的值填充ObservalArray。我有一个禁用的文本框,显示日期选择器的值,作为数据收集部分的一部分。由于它被禁用且未被输入,因此它不会更新ObservalArray 我已经创建了一个新的解决方案,将问题剥离并本地化 任何帮助获得的价值出现在observableArray将是伟大的,因为我真的很难弄明白这一点 HTML <!--Date Load --> <span><b>Select a date:</b></s
<!--Date Load -->
<span><b>Select a date:</b></span>
<span><input id="theDate" data-bind="datepicker: viewModelWardStaff.dateMonthYear, datepickerOptions: { dateFormat: 'dd/mm/yy' } "></span>
<!--Input Form -->
<span><h4>Input New Entries</h4></span>
<div style="border: solid 1px;" data-bind="with: viewModelWardStaff">
<form class="grid-form" id="dataCollection">
<fieldset>
<div data-row-span="1">
<div data-field-span="1">
<label>Date</label>
<input id="cDate" class="autosend" data-bind="textInput: dateMonthYear, enable: false">
</div>
<div data-field-span="1">
<label>Status</label>
<input id="cStatus" maxlength="200" class="autosend" data-bind="textInput: wardstaff.Status" type="text">
</div>
</div>
</fieldset>
<div style="margin: 5px;">
<a style="margin-left: 300px;" id="addFileButton" class="button-link" data-bind="click: viewModelWardStaff.addEntry">Add</a>
</div>
</form>
</div>
<h4>View Model Ward Staff</h4>
<div data-bind="with: viewModelWardStaff">
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre>
</div>
我认为问题在于您的可观察日期,
dateMonthYear
,存在于主视图模型中。self.wardstaff
的Date
属性从未设置
您可以通过将主视图模型中的可观察对象与wardstaff
属性中的可观察对象共享来解决此问题:
function oWardStaff(obsDate) {
var self = this;
self.Date = obsDate;
self.Status = ko.observable();
};
/* ... */
self.dateMonthYear = ko.observable();
self.wardstaff = new oWardStaff(self.dateMonthYear);
现在,无论何时选择新日期,它都会将其写入两个viewmodels引用的可观察对象
这句话突然变得有用了:
function WardStaff(data) {
var self = this;
self.Date = ko.observable(data.Date()); // <-- here
self.Status = ko.observable(data.Status());
};
功能管理员(数据){
var self=这个;
self.Date=ko.observable(data.Date());//我对knockout.js了解不够,无法帮助您,请使用矩(moment(value).isValid()检查矩对象是否有效,而不是moment(value).format('DD/MM/yyyyy'))==“无效日期”
。谢谢。非常感谢,当你知道的时候,这是显而易见的!工作正常!
function WardStaff(data) {
var self = this;
self.Date = ko.observable(data.Date()); // <-- here
self.Status = ko.observable(data.Status());
};