当输入字段更新时,如何在knockout.js中更新observableArray项?
How do you update an observableArray item in knockout.js when input field is updated
我对使用knockout非常陌生,感觉我正在做的一些事情有点黑客,所以请告诉我,如果我在这里做的是错误的,我应该做一个更好的方式。
我的模型的属性之一是字符串数组。在UI中,我为数组中的每个项目创建了一个输入字段。
我想要的是在我更新输入字段的值时更新模型中的项。
假设我有一个名为CarRentalCodes的属性,它是一个observableArray,这是我的视图的一部分
<div data-bind="foreach: CarRentalCodes()">
<input type="text" style="width:40px; display:inline" class="form-control" data-bind="value: $data"/>
</div>
它列出了具有正确值的输入字段,但是当我更改它们时,它们不会在模型中更新。
我是否需要用javascript手动替换值,或者是否有一些内置的knockout可以为我解决这个问题?
看一下文档,他们很好。
http://knockoutjs.com/documentation/observableArrays.html key-point-an-observablearray-tracks-which-objects-are-in-the-array-not-the-state-of-those-objects
你需要做的是将输入连接到一个可观察对象,而不仅仅是一个字符串。
下面是一个例子:http://jsfiddle.net/edhedges/ssekY/,因为它必须伴随着代码:
function vm() {
this.myArr = ko.observableArray([
new myObj('1'),
new myObj(''),
new myObj('hello'),
new myObj('there')
]);
}
function myObj(myObjs) {
this.myObs = ko.observable(myObjs);
}
ko.applyBindings(new vm());
相关文章:
- 有条件更新d3.js力图中节点的最佳方法
- d3.js用按钮更新条形图工具提示
- React js更改状态不会更新组件
- 谷歌地图/Angular JS:地图更新并不总是反映数据,并且可以't删除标记
- 如何让React JS点击处理程序在执行时更新DOM
- 更新从Mysql查询检索到的数据?Node.js节点mysql
- JS在更新面板后重置
- Node.js错误“;ReferenceError:全局未定义“;在从0.10.2更新到0.12.2之后
- 使用PHP更新external.js中的Javascript变量
- Angular JS-文本框未在独立范围内更新
- 在第三次onPageClick事件后,使用twbspagination插件和AJAX更新JS分页
- 基于元素ID更新JS对象
- 持续更新 JS 变量的 HTML 显示
- 更新JS类的属性基于其他属性
- 在angular $scope中更新JS数组
- Jquery .html()似乎没有更新JS代码
- React Native,自动更新.js文件
- 如何通过ajax更新js对象类型变量
- 如何让grunt用户更新JS来引用我们的图像
- 基于本地存储更新JS对象