javascript - 如何使用 Knockout.js 在特定位置向 ObservableArray 添加/插入项目

标签 javascript mvvm knockout.js

我发现的所有 knockout 示例似乎都使用类似以下内容将新项目添加到 ObservableArray 的末尾:

viewModel.SomeItems.push(someNewItem);

这当然会将项目放在数组的末尾。

如何在 ObservableArray 的某个位置添加一个项目?

例如。像这样的东西:

viewModel.SomeItems.push(someNewItem, indexToInsertItAt);

最佳答案

你应该可以使用原生 JavaScript splice 方法 -

viewModel.SomeItems.splice(2,0,someNewItem);

文档在这里 - https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/splice

此处示例(非特定于 Knockout)- How to insert an item into an array at a specific index?

来自 Knockout 文档 -

For functions that modify the contents of the array, such as push and splice, KO’s methods automatically trigger the dependency tracking mechanism so that all registered listeners are notified of the change, and your UI is automatically updated.

关于javascript - 如何使用 Knockout.js 在特定位置向 ObservableArray 添加/插入项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7317907/

相关文章:

javascript - “Angular ”未定义 - 为什么不定义?

javascript - Electron 变焦级别更改事件

angularjs - 需要在浏览器中构建一个拖放表单设计器-AngularJS是满足此类需求的正确框架吗

wpf - 如何在按钮按下时绑定(bind)命令(wpf/mvvm)?

knockout.js - 防止项目在其他(父/子)元素中为 'droppable'

knockout.js - 如何以固定次数呈现内联模板

templates - 从外部文件加载基因 knockout 模板,而无需复杂的引擎?

javascript - 将 select2 的结果移动到另一个 div

javascript - 如何在 WordPress 中获取子主题 url?

wpf - 如何根据 View 模型中的属性渲染不同的路径形状