これは主要な質問ですが、何度か試しても解決できません。(しかし、私はこの分野に不慣れです)
私が必要としているのは、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 値も表示されません。私は何を間違っていますか?