如何使用Knockout.js在ObservableArray的某个位置添加/插入一个项
How to add/insert an item into an ObservableArray at a certain position with Knockout.js
我发现的所有令人惊叹的例子似乎都在ObservableArray的末尾添加了一个新项目,使用如下方式:
viewModel.SomeItems.push(someNewItem);
这当然会把项放在数组的末尾。
我如何添加一个项目到ObservableArray在某个位置?
。比如:
viewModel.SomeItems.push(someNewItem, indexToInsertItAt);
您应该能够使用原生JavaScript splice
方法-
viewModel.SomeItems.splice(2,0,someNewItem);
Docs here - https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice
这里的例子(不是Knockout特定的)-如何在特定索引处插入一个项到数组中?
从Knockout文档-
用于修改数组内容的函数,如push和splice, KO的方法会自动触发依赖项跟踪机制,以便通知所有已注册的侦听器更改;你的UI会自动更新。
使用
viewModel.SomeItems.unshift(someNewItem);
参见:http://knockoutjs.com/documentation/observableArrays.html
我做了这个扩展函数,它对我来说很好。Splice不能为我工作,如果我添加到一个稀疏数组的末尾。
ko.observableArray.fn.setAt = function(index, value) {
this.valueWillMutate();
this()[index] = value;
this.valueHasMutated();
}
这甚至适用于:
var a = ko.observableArray(['a', 'b', 'c']);
a.setAt(42, 'the answer');
相关文章:
- Adobe acrobat每隔30页插入一个空页面-javascript
- Javascript按钮,在html文本区域中插入一个大黑点(•)
- 如何在 jquery 中插入一个欠量列表
- 在光标位置的文本区域中插入一个字符串,并进行一些更改
- 从输入中提取数字,并插入一个等式javascript
- 如何在JS中的屏幕右上角插入一个浮动按钮
- 在事件jquery中插入一个函数
- 使用 jQuery 在文本区域插入一个浮动按钮
- 我正在尝试遍历 id 数组,如果不存在 id,则插入一个 mongodb 文档.我怎样才能让他们坚持下去
- 如何在 Javascript 中插入一个可以使用 onclick() 访问函数的按钮
- Javascript:插入一个变量作为参数
- 为什么我的 push() 方法不断在我的数组中插入一个“未定义”的元素
- 在 JavaScript 函数中插入一个选择标签
- 在 jQuery 中插入一个 CSS id
- 如何在文本的每 5,000 个字符之后的第一个
或
之后插入一个 - 在 iFrame 中插入一个值
- 用mootools插入一个中断
- Java,JavaFx:在JavaFX容器中插入一个HTML&JS(静态,无互联网)项目
- Google+API只读-什么是插入一个时刻
- 我怎么能在每个特定的字符中插入一个字符,比如“”;(“在我的javascript中