knockout.js - 在 Knockout.js 中反转数组

标签 knockout.js

我正在学习如何使用 Knockout.js。我想显示 observableArray 的内容反转,所以我这样使用 Knockout reverse 函数:

   <ul  data-bind="foreach: anObservableArray.reverse()" >...</ul>

但是,它不起作用,也不会发生错误。当我尝试这个时:
<ul  data-bind="foreach: anObservableArray.slice(0).reverse()" >...</ul>

它按预期工作。我的问题是当反向函数已经返回一个反向数组时,为什么我必须复制整个数组?。

最佳答案

调用 reverse实际上会就地反转数组(并返回它),因此您可能会遇到多次反转数组的问题。

例如,如果您有两个块,例如:

<ul  data-bind="foreach: anObservableArray.reverse()" >...</ul>
<ul  data-bind="foreach: anObservableArray.reverse()" >...</ul>

第一个将被颠倒,第二个将恢复到原来的顺序。

最好反转副本,尤其是当您要从数组中添加和删除项目时。

关于knockout.js - 在 Knockout.js 中反转数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14391942/

相关文章:

javascript - 如何在没有全局 viewModel 的情况下将点击处理程序绑定(bind)到 knockoutjs 中的模板?

javascript - 未捕获的类型错误 : Cannot read property 'nodeType' of null

jquery - 如何在 Knockout 模板中设置 jQuery Mobile 内容的样式?

javascript - Knockout.js - $parent 未按预期工作

javascript - 如何让多个 View 在 Knockout.js 的 View 模型中工作

javascript - 如何停止 Knockout 3.2 库加载两次

Jquery 颜色选择器绑定(bind)处理程序创建多个 div

knockout.js - 在 viewModel 范围之外的 javascript 函数中访问 viewModel

javascript - 在knockoutjs中绑定(bind)JSON和表

php - javascript 文件未加载或其他问题?