ここで何かが非常に間違っていると思います。ko.computed
このように aに aを追加したいと思いko.observableArray
ます。
その前に、明確にするために私のモデル
//var job = @Html.Raw(Json.Encode(Model.job));
//var customer = @Html.Raw(Json.Encode(Model.customer));
//var estimateMaterials = @Html.Raw(Json.Encode(Model.estimateMaterials));
//var estimate = @Html.Raw(Json.Encode(Model.estimate));
var estimateTasks = @Html.Raw(Json.Encode(Model.Tasks));
var JobPostViewModel = function(){
var self = this;
//self.customer = ko.observable(customer);
//self.job = ko.observable(job);
//self.estimateMaterials = ko.observableArray(estimateMaterials);
//self.estimate = ko.observable(estimate);
self.estimateTasks = ko.observableArray(estimateTasks);
self.estimateTasks().estLaborSubTotal = ko.computed(function () {
return (isNaN(self.EstHr)? 0: +self.EstHr) * (isNaN(self.TaskPerHourCost)? 0: +self.TaskPerHourCost);
});
};
var model = new JobPostViewModel();
ko.applyBindings(model, document.getElementById("my_job_form"));
これが私のモデルバインドです。my_job_form
にdata-bind="with:jobs"
バインドされているフォーム内にテーブルを作成していestimateTasks
ます。マークアップは
<tbody data-bind="foreach: $root.estimateTasks">
<tr>
<td>
<input type="text" data-bind="value: EstHr" />
<input type="hidden" data-bind="value: TaskPerHourCost" />
</td>
<td>
<input type="text" data-bind="value: estLaborSubTotal" disabled />
</td>
</tr>
</tbody>
バインド時にエラーが発生します
ReferenceError: estLaborSubTotal が定義されていません
ここで何が間違っていますか?