KnockoutJS更新行和字段
KnockoutJS update row sum field
我一直在研究如何使用knockoutJS 更新foreach模板中的行和
<div id="timeEntryList" data-bind="foreach: timeEntries">
<table >
<tr>
...
<td> //there are more of this, not included here
<input type="number"
data-bind="value: Days[6].Hours,
event: { change: $root.setDirty }" />
</td>
<td> //this part needs to be updated when the above input is changed
<span data-bind="text: $root.sumRow($data)">
</span>
</td>
最后一个TD包含一个span元素,它显示foreach中当前项目报告的小时数总和。它在加载数据时显示正确,但在编辑元素时保持陈旧。如何在更改输入框的值时更新此元素?
这是我的视图模型在一个非常精简的版本:
var TimeReportModel = function (init) {
this.timeEntries = ko.observableArray(init.TimeEntries);
//... helper functions
};
TimeEntries是表示每周报告的小时数的对象。因此,它包含一个天数数组,并且每天都有一个小时属性。
根据您绑定到的内容,您似乎绑定到了一个正则函数的结果。如果您希望看到在发生更改时更新的值,则需要绑定到可观察的值。使总和在视图模型中成为可观察的计算值,并绑定到它。
我不知道你的视图模型是什么样子的,也不知道你在加什么,但它看起来像这样:
// calculate the sum of the hours for each of the days
self.totalDays = ko.computed(function () {
var sum = 0;
ko.utils.arrayForEach(self.days(), function (day) {
sum += Number(day.hours());
});
return sum;
});
这里有一把小提琴要示范。
相关文章:
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 输入字段将't获取更新的值
- 在控制器上使用“$watch”时,为什么不更新此隐藏字段
- 更新嵌套对象的多个字段
- 选择单选按钮更新2个输入字段
- KnockoutJS更新行和字段
- 当html选择/选项发生更改时,需要更新输入字段
- 通过 JavaScript 从主网格视图上的功能区按钮更新 CRM 2011 中的字段
- 输入字段未使用 ng-keydown 事件更新
- 单击“角度”复选框时更新不相关的字段
- 反应:以动态生成的形式根据另一个字段更新字段值
- 使用模态上的文件输入字段更新主视图上的隐藏字段
- 使用 Drupal 6 的表单 ahah 让一个下拉字段更新第二个下拉字段的值
- 获取 2 个输入字段中的舍入值,当其中一个输入字段更新时,这些输入字段会更新
- 通过输入字段更新javascript数组数据
- 角度表单验证-在字段更新时隐藏错误
- 保存由OnSave事件触发的字段更新
- Knockoutjs的日期时间字段更新不会刷新模型视图
- 当输入字段更新时,如何在knockout.js中更新observableArray项?
- Mongoose似乎不支持$max字段更新操作符,有什么建议吗?