我希望能够根据下拉列表的选择显示日期。下拉列表从 MVC3 中的 ViewModel 填充,并在页面加载时序列化为 Json。
我尝试使用订阅,更改等无济于事。当您在下面的 jsfiddle 链接中选择一个单位时,事件日期应该作为默认值填充到右侧的文本框中——用户仍然可以更改它。我们在 unitDropDown 可观察数组中有这些信息。正如我在其他示例中看到的那样,我可能很密集,对我来说,它只是不会点击可以这么说。
我猜我必须在 addEvent observable 中添加一些事件?然后还以某种方式设置订阅下拉列表?
addEvent: function() {
this.phaseUnits.push(new PhaseUnitModel('0', '1', '0', 'N', '')); // defaults
}
这是 jsFiddle 中的工作示例:http: //jsfiddle.net/robcube/eFAmu/
更新(修复):
function PhaseUnitModel(Id, PhaseDetailId, UnitId, eventType, eventDate, deleteFlag) {
var self = this;
self.Id = ko.observable(Id);
self.PhaseDetailId = ko.observable(PhaseDetailId);
self.UnitId = ko.observable(UnitId);
self.eventType = ko.observable(eventType);
self.eventDate = ko.observable(eventDate);
self.deleteFlag = ko.observable(deleteFlag);
self.markForDeleteText = ko.observable();
self.UnitId.subscribe(function(newValue) {
for (i in unitDropDown) {
if (unitDropDown[i].Id == newValue)
self.eventDate(unitDropDown[i].OnlineDate);
}
}.bind(this));
}