即使这是主要问题,即使经过多次尝试,我也无法解决。(但我是这个领域的新手)
我需要的是我有 2 个单独的 java 脚本文件,我想从它们中绑定。
<table style="width: 100%;">
<tr>
<td class="auto-style1">Time For Work: </td>
<td><input id="Text2" type="text" data-bind="value: TimeForWork" /></td>
</tr>
<tr>
<td class="auto-style1">Rest </td>
<td><input id="Text4" type="text" data-bind="value: Rest" /></td>
</tr>
<td class="auto-style1">Project Code </td>
<td ><select id="Select1" data-bind='options: Projects' style="width: 312px"></select>
<button data-bind="click: AddProjects">Cancel</button>
</td>
<td><input id="Text6" type="text" data-bind="value:Test" />
</table>
<script src="Scripts/TimeRecord.js"></script>
<script src="Scripts/ProjectDetail.js"></script>
我的 Java 脚本:TimeRecord.js
var ViewModel = {
CheckIn: ko.observable(),
CheckOut: ko.observable(),
Lunch: ko.observable(),
Rest: ko.observable(),
WorkOnProject: ko.observable(),
//Projects: ko.observableArray()
};
ViewModel.TimeForWork = ko.dependentObservable(function () {
return ViewModel.CheckIn() ? ViewModel.CheckOut() ? parseFloat(this.Lunch()) ? parseFloat(this.CheckOut()) - parseFloat(this.CheckIn()) - parseFloat(this.Lunch()) : parseFloat(this.CheckOut()) - parseFloat(this.CheckIn()) : 0 : 0;
}, ViewModel);
ViewModel.RemainHour = ko.dependentObservable(function () {
return ViewModel.TimeForWork() ? ViewModel.Rest() ? ViewModel.WorkOnProject() ? parseFloat(this.TimeForWork()) - parseFloat(this.Rest()) - parseFloat(this.WorkOnProject()) : parseFloat(this.TimeForWork()) - parseFloat(this.Rest()) : parseFloat(this.TimeForWork()) : 0
}, ViewModel);
ProjectDetail.js
var projectLine = function () {
var self = this;
//self.RemainHour = ko.observable();
self.Test = "abc";
self.Projects = ko.observableArray();
self.AddProjects = function () {
alert('abc');
}
}
ko.applyBindings(new projectLine());
在这里 TimeRecord.js 值按我的预期绑定。但 ProjectDetail 值不具有约束力。甚至 self.Test 值也不显示。我做错了什么?